次の方法で共有


WMI の汎用プロパティ ページ プロバイダー

Windows XP 以降のオペレーティング システムでは、ドライバーは WMI 汎用プロパティ ページ プロバイダーを介して WMI クラスを公開できます。 プロバイダーは、各クラス宣言を使用して、クラス プロパティのシンプルなプロパティ ページを作成します。

プロパティ修飾子がプロパティ ページを決定する方法

WMI 汎用プロパティ ページ プロバイダーは、クラス内の各プロパティのデータ型に適したコントロールを使用します。 次のプロパティ修飾子は、使用されるコントロールの種類を変更します。

  • 書き込み

    書き込み 修飾子 を持つプロパティは、プロパティ ページを使用して変更できます。 それ以外の場合は、プロパティは読み取り専用です。

  • ValuesMap

    汎用プロパティ ページ プロバイダーは、リスト ボックスを使用して使用可能な値を表します。

  • 範囲

    汎用プロパティ ページ プロバイダーは、入力されたデータが指定された範囲に準拠していることを検証します。

  • 表示名

    汎用プロパティ ページ プロバイダーは、プロパティのラベルとしてこのプロパティ修飾子の値を使用します。

  • DisplayInHex

    存在する場合、プロパティ値は 16 進数で表示されます。

ドライバー ライターは、文字列であるプロパティ修飾子をローカライズする必要があります。 詳細については、「 MOF ファイルのローカライズ 」を参照してください。

汎用プロパティ ページ プロバイダーの有効化

Wmiprop.dll によって使用されるクラスを公開する各デバイスは、共同インストーラーとして Wmiprop.dll を有効にする必要があります。 これを行うには、共同インストーラーの add-registry-section に次の項目を追加します。 HKLM\System\CurrentControlSet\Control\CoDeviceInstallers レジストリ キーの下にクラス GUID の値エントリを追加します。 値エントリの値は、「WmiProp.dll、 WmiPropCoInstaller」 です。

次に例を示します。

; This section is defined in the Co-installer section, as follows.
; [Co-installer]
; AddReg = CoInstaller_AddReg

[CoInstaller_AddReg] 
HKLM, System\CurrentControlSet\Control\CoDeviceInstallers, ClassGUID,
    0x00010000, "WmiProp.dll, WmiPropCoInstaller"

ClassGUID は、WMI クラスの GUID です。 詳細については、「 クラス共同インストーラーの登録 」を参照してください。

また、ジェネリック プロパティ プロバイダーを介して公開する特定の WMI クラスも指定する必要があります。 これを行うには、 WmiConfigClasses 値エントリを、デバイス クラスまたはデバイス ハードウェア インスタンスの add-registry-section のWMI クラスのコンマ区切りリストに設定します。

; the device class AddReg section.
[device_class_AddReg]
HKR,,"WmiConfigClasses",0x00000000,"class1,class2"

; the device hardware instance AddReg section.
[device_hw_inst_AddReg]
HKR,,"WmiConfigClasses",0x00000000,"class3"

INF AddReg ディレクティブ はINF ファイルの レジストリの追加セクション の説明を参照してください。

Wmiprop.dllは、各クラスのインスタンスを 1 つだけ想定しています。 各クラスは、プロパティ シートのタブで表されます。 表示名 プロパティ修飾子を使用して、タブのタイトル テキストを設定します。クラスのプロパティ ページは、現在クラスのインスタンスがある場合にのみ表示されます。 そのため、デバイスが削除された場合、または起動されていない場合、ページは表示されません。