WDF_PROPERTY_STORE_ROOT構造体 (wudfddi_types.h)

[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。

WDF_PROPERTY_STORE_ROOT構造体には、UMDF プロパティ ストアを識別する情報が含まれています。

構文

typedef struct _WDF_PROPERTY_STORE_ROOT {
  ULONG                         LengthCb;
  WDF_PROPERTY_STORE_ROOT_CLASS RootClass;
  union {
    struct {
      PCWSTR ServiceName;
    } HardwareKey;
    struct {
      LPCGUID InterfaceGUID;
      PCWSTR  ReferenceString;
    } DeviceInterfaceKey;
    struct {
      PCWSTR LegacyMapName;
    } LegacyHardwareKey;
  } Qualifier;
} WDF_PROPERTY_STORE_ROOT, *PWDF_PROPERTY_STORE_ROOT;

メンバー

LengthCb

この構造体の長さ (バイト単位)。

RootClass

プロパティ ストアを識別する WDF_PROPERTY_STORE_ROOT_CLASS型指定の値。

Qualifier

Qualifier.HardwareKey

Qualifier.HardwareKey.ServiceName

レジストリ内のデバイスのハードウェア キーの下にあるドライバー固有のサブキーを識別する NULL で終わる文字列へのポインター。 このメンバーの詳細については、次の「備考」セクションを参照してください。

Qualifier.DeviceInterfaceKey

Qualifier.DeviceInterfaceKey.InterfaceGUID

デバイス インターフェイスを識別する GUID へのポインター。 デバイス インターフェイスを登録するには、ドライバーで IWDFDevice::CreateDeviceInterface が以前に呼び出されている必要があります。

Qualifier.DeviceInterfaceKey.ReferenceString

デバイス インターフェイスの参照文字列を識別する NULL で終わる文字列へのポインター。 ドライバーは、 IWDFDevice::CreateDeviceInterface を呼び出したときに参照文字列を指定した場合に、このメンバーを指定する必要があります。 それ以外の場合、このメンバーは NULL である必要があります。

Qualifier.LegacyHardwareKey

Qualifier.LegacyHardwareKey.LegacyMapName

レジストリ内の HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP キーの下にあるサブキーを識別する NULL で終わる文字列へのポインター。 このキーは、いくつかの古いドライバーでのみ使用されます。

注釈

WDF_PROPERTY_STORE_ROOT構造体は、IWDFPropertyStoreFactory::RetrieveDevicePropertyStore および IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore への入力として使用されます。

UMDF プロパティ ストアは、ドライバーがアクセスできるレジストリ キーを表します。 ドライバーが上記のいずれかのメソッドを呼び出す前に、 WDF_PROPERTY_STORE_ROOT 構造体を初期化する必要があります。 ドライバーは構造体を 0 にしてから、 LengthCb メンバーを構造体の長さに設定する必要があります。

ソフトウェア キーを開くには、ドライバーで次の手順を実行する必要があります。

  1. 構造体の LengthCb メンバーを構造体のサイズに設定します。
  2. 構造体の RootClass メンバーを WdfPropertyStoreRootClassSoftwareKey に設定します。
デバイスの ハードウェア キーを開くには、ドライバーで次の手順を実行する必要があります。
  1. 構造体の LengthCb メンバーを構造体のサイズに設定します。
  2. 構造体の RootClass メンバーを WdfPropertyStoreRootClassHardwareKey に設定します。
  3. Qualifier.HardwareKey.ServiceName メンバーの値を設定します。 この値は、次のいずれかである必要があります。
    • WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT、デバイスのハードウェア キーの下にある \Device Parameters サブキーを開きます。 ドライバーは、このサブキーへの読み取りアクセスのみを取得できます。
    • WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT、ドライバーのサービス名と一致するサブキーを開くには、 \Device Parameters サブキーの下に表示されます。 ドライバーは、このサブキーへの読み取りまたは書き込みアクセスを取得できます。 必要に応じて、ドライバーはサブキーが存在しない場合に作成できます。
    • \Device Parameters サブキーの下で、文字列に一致する名前を持つサブキーを開く、ドライバー指定の文字列。 ドライバーは、このサブキーへの読み取りまたは書き込みアクセスを取得できます。 必要に応じて、ドライバーはサブキーが存在しない場合に作成できます。

    ドライバーがデバイスのハードウェア キーの下にサブキーを作成する場合は、UMDF によってドライバーのサービス名と一致するサブキーが作成されるため、 WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT を指定することをお勧めしています。 この名前を使用すると、各ドライバーで一意の名前付きサブキーが作成されます。 ドライバーでは、サブキー名として WDF または WUDF を指定しないでください。

デバイス インターフェイス キーを開くには、ドライバーで次の手順を実行する必要があります。
  1. 構造体の LengthCb メンバーを構造体のサイズに設定します。
  2. 構造体の RootClass メンバーを WdfPropertyStoreRootClassDeviceInterfaceKey に設定します。
  3. Qualifier.DeviceInterfaceKey.InterfaceGUID メンバーを、ドライバーが IWDFDevice::CreateDeviceInterface の以前の呼び出しに指定した GUID に設定します。
  4. Qualifier.DeviceInterfaceKey.ReferenceString メンバーを、ドライバーが IWDFDevice::CreateDeviceInterface の以前の呼び出しに指定した参照文字列に設定します。ドライバーが参照文字列を指定しなかった場合は NULL を設定します。
ドライバーは、デバイス インターフェイス キーへの読み取りまたは書き込みアクセスを取得できます。

DEVICEMAP キーを開くには、ドライバーで次の手順を実行する必要があります。

  1. 構造体の LengthCb メンバーを構造体のサイズに設定します。
  2. 構造体の RootClass メンバーを WdfPropertyStoreRootClassLegacyHardwareKey に設定します。
  3. Qualifier.LegacyHardwareKey.LegacyMapName メンバーを、レジストリの HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP キーの下のサブキーを指定する文字列に設定します。
ドライバーは、 DEVICEMAP キーの下にある指定したサブキーへの読み取りまたは書き込みアクセス権を取得できます。 必要に応じて、ドライバーはサブキーが存在しない場合に作成できます。 ただし、このサブキーを作成するドライバーは、システムが再起動するたびにサブキーを削除するように WdfPropertyStoreCreateVolatile フラグを指定する必要があります。

これらのレジストリ キーの詳細については、「 UMDF ベースのドライバーでのレジストリの使用」を参照してください。

要件

要件
最小 UMDF バージョン 1.9
Header wudfddi_types.h (Wudfddi.h を含む)

こちらもご覧ください

IWDFPropertyStoreFactory::RetrieveDevicePropertyStore