デバイスメタデータ作成ウィザード

久方ぶりです。まさかたです。

今回は、WDK 8 から新しく導入された 「Device Metadata Authoring Wizard(デバイスメタデータ作成ウィザード)」 についてご紹介したいと思います。

Using the Device Metadata Authoring Wizard (Windows)

https://msdn.microsoft.com/en-us/library/windows/hardware/hh454282(v=vs.85).aspx

このツールは、Device Metadata Package を作成するための GUI ツールになりますが、Device Metadata 自体は Windows 7 から存在するもので、「デバイスとプリンター」や「Device Stage」を定義するための情報として利用されており、以前 K 里さんの記事でも紹介されていたかと思います。

Windows 8 では、Device Metadata は上記と同様の機能を持ちつつも、新たにデバイスと Windows ストア デバイス アプリを結び付ける役割が追加されました。

そのため、前述のウィザードでは、従来の「デバイスとプリンター」や「Device Stage」のための情報を追加するのと同時に、デバイスと Windows ストアデバイス アプリとを結びつけるための情報を入力できるようになっています。

また、ウィザード形式となっていますので、順番に必要な情報を設定していけば、簡単に Device Metadata Package を作成することができます。

そこで、以下では、この Device Metadata Authoring Wizard を実際に動かしながら、使い方を見ていきたいと思います。

1. Device Metadata Authoring Wizard のインストールと起動

本ツールは、WDK 8 に含まれていますので、必然的に Visual Studio 2012 がインストールされた環境が必要になります。

下記の通り、WDK 8 をアドオンとしてインストールした後、Visual Studio 2012 のメニューの中に、[DRIVER] メニューが表示されますので、そこから [Device Metadata] -> [Authoring] とクリックすれば、ウィザードの画面が表示されます。

clip_image002

clip_image004

新しく Metadata Package を作る場合には、“Create new device metadata package” を選択して [Next] ボタンをクリックします

また、“Update existing device metadata package” を選択すれば、既存の Metadata Package を編集することができます。

以下の説明では、試しに下記のサンプルに含まれる Device Metadata Package を例にして説明しています。

Sample KMDF Function Driver for OSR USB-FX2

https://code.msdn.microsoft.com/windowshardware/kmdffx2-e785110a

ちなみに、上記のサンプルの Device Metadata Package は、下記に含まれています。

Sample KMDF Function Driver for OSR USB-FX2\C++\deviceMetadata\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms

2. Metadata の情報を入力

ウィザードでは、下記の通りいくつかのタブに分かれた形で、Metadata の作成に必要な情報を順次入力することができます。

clip_image006

それぞれのタブで設定できる内容の概要は、以下の通りです。

(1) Package Definition : パッケージのロケールに関する設定ができます

(2) Icon : 「デバイスとプリンター」に表示されるデバイスのアイコンを設定できます

(3) Description : 「デバイスとプリンター」などから見ることのできるデバイスのプロパティ上に表示される、製造元、モデル、モデル番号、説明に表示する文字列を指定できます

(4) Categories : デバイスのカテゴリを指定できます

(5) Associations : Hardware ID もしくは Model ID を使用して、Device Metadata Package に関連付けるハードウェアを指定できます

(6) Applications : 関連付ける Windows ストア デバイス アプリの情報を入力します

(7) Options : デバイスの接続状態の表示や、デバイス接続時の自動再生で起動するアプリに関する設定を行えます

(8) Finish : 設定内容のサマリを確認できます。また、Metadata Package の保存先の指定や、Package を Metadata Store にコピーして即座にシステムに反映させるかどうかを指定できます

参考のために、その他のタブについても、前述のサンプル KMDF Function Driver for OSR USB-FX2 の Device Metadata Package を開いて見た場合の表示内容をお見せいたします。

■Icon タブ

clip_image008

■Description タブ

clip_image010

■Categories タブ

clip_image012

■Associations タブ

clip_image014

■Applications タブ

clip_image016

ちなみに、この “Applications” タブで指定されているアプリケーションは、下記のサンプルアプリを対象としていますので、併せてご参考としていただければと思います。

Custom driver access sample

https://code.msdn.microsoft.com/windowsapps/Custom-device-access-sample-43bde679

■Options タブ

clip_image018

■Finish タブ

clip_image020

各タブで行える設定内容について、もっと詳細にお知りになりたい方は以下をご参照いただければと思います。

Using the Device Metadata Authoring Wizard (Windows)

https://msdn.microsoft.com/en-us/library/windows/hardware/hh454282(v=VS.85).aspx

3. 作成の完了と内容の確認

先ほどの (8) Finish のタブで [Finish] ボタンを押せば、Metadata Package の作成は完了です!

このようにして出来上がった Device Metadata Package は Cabinet ファイルですので、その中身を確認してみると、以下のようなフォルダ構造となっており、以前、K 里さんにご紹介いただいた記事に記載のあった PackageInfo.xml や DeviceInfo.xml 以外にも、SoftwareInfo.xml や WindowsInfo.xml などの新しい XML ファイルがいくつか追加されていることが分かります。

以下は、KMDF Function Driver for OSR USB-FX2 の Device Metadata Package を Cabinet ファイルとして展開した後、そのフォルダ構造をコマンドプロンプトで一覧表示したものです。

 

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms>dir /s /b

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\DeviceInfo

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\PackageInfo.xml

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\SoftwareInfo

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\WindowsInfo

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\DeviceInfo\DeviceInfo.xml

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\DeviceInfo\Fx2.ico

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\SoftwareInfo\SoftwareInfo.xml

C:\B4D697F5-1C56-4807-ACCD-B28C09D37FF0.devicemetadata-ms\WindowsInfo\WindowsInfo.xml

それぞれのファイルの詳細については、ここでは触れませんが、新しく追加された SoftwareInfo.xml には、先ほどのウィザードの “Application” タブで設定した、Windows ストア デバイス アプリに関する情報が格納されていたり、WindowsInfo.xml には、”Options” タブで設定した情報などが格納されているのが分かります。

SoftwareInfo.xml の例

<?xml version="1.0" encoding="utf-8"?>

<SoftwareInfo xmlns="https://schemas.microsoft.com/windows/2010/08/DeviceMetadata/SoftwareInfo">

  <DeviceCompanionApplications>

    <Package>

      <Identity Name="Microsoft.SDKSamples.CustomDeviceAccess.JS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

      <Applications>

        <Application Id="Microsoft.SDKSamples.CustomDeviceAccess.JS" />

      </Applications>

    </Package>

  </DeviceCompanionApplications>

  <PrivilegedApplications>

    <Package>

      <Identity Name="Microsoft.SDKSamples.CustomDeviceAccess.JS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" AccessCustomDriver="true" />

    </Package>

    <Package>

     <Identity Name="Microsoft.SDKSamples.CustomDeviceAccess.CS" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" AccessCustomDriver="true" />

    </Package>

    <Package>

      <Identity Name="Microsoft.SDKSamples.CustomDeviceAccess.CPP" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" AccessCustomDriver="true" />

    </Package>

    <Package>

      <Identity Name="Microsoft.SDKSamples.CustomDeviceAccess.VB" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" AccessCustomDriver="true" />

   </Package>

  </PrivilegedApplications>

</SoftwareInfo>

WindowsInfo.xml の例

<?xml version="1.0" encoding="utf-8"?>

<WindowsInfo xmlns="https://schemas.microsoft.com/windows/DeviceMetadata/WindowsInfo/2007/11/">

  <ShowDeviceInDisconnectedState>false</ShowDeviceInDisconnectedState>

  <LaunchDeviceStageOnDeviceConnect>false</LaunchDeviceStageOnDeviceConnect>

  <LaunchDeviceStageFromExplorer>false</LaunchDeviceStageFromExplorer>

</WindowsInfo>

上記の通り、Windows 8 からの Device Metadata Package には、Windows 7 にはなかった新しい機能が追加されていることがお分かりになるかと思います。実際に、Windows ストア デバイス アプリとの関連付けを行った場合に、どんな動作になるかについては、また機会がありましたらご紹介できればと思います。

それではまた。