WDF_PROPERTY_STORE_ROOT Struktur (wudfddi_types.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mithilfe von UMDF 2 geschrieben werden. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Začínáme mit UMDF.]

Die WDF_PROPERTY_STORE_ROOT Struktur enthält Informationen, die einen UMDF-Eigenschaftenspeicher identifizieren.

Syntax

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;

Member

LengthCb

Die Länge in Bytes dieser Struktur.

RootClass

Ein WDF_PROPERTY_STORE_ROOT_CLASS-typierter Wert, der einen Eigenschaftenspeicher identifiziert.

Qualifier

Qualifier.HardwareKey

Qualifier.HardwareKey.ServiceName

Ein Zeiger auf eine NULL-beendete Zeichenzeichenfolge, die einen treiberspezifischen Unterschlüssel unter dem Hardwareschlüssel eines Geräts in der Registrierung identifiziert. Weitere Informationen zu diesem Mitglied finden Sie im folgenden Abschnitt "Hinweise".

Qualifier.DeviceInterfaceKey

Qualifier.DeviceInterfaceKey.InterfaceGUID

Ein Zeiger auf eine GUID, die eine Geräteschnittstelle identifiziert. Der Treiber muss zuvor IWDFDevice::CreateDeviceInterface aufgerufen haben, um die Geräteschnittstelle zu registrieren.

Qualifier.DeviceInterfaceKey.ReferenceString

Ein Zeiger auf eine NULL-beendete Zeichenzeichenfolge, die eine Referenzzeichenfolge für eine Geräteschnittstelle identifiziert. Der Treiber muss dieses Element angeben, wenn er eine Referenzzeichenfolge angegeben hat, wenn er IWDFDevice::CreateDeviceInterface aufgerufen hat. Andernfalls muss dieses Element NULL sein.

Qualifier.LegacyHardwareKey

Qualifier.LegacyHardwareKey.LegacyMapName

Ein Zeiger auf eine NULL-beendete Zeichenzeichenfolge, die einen Unterschlüssel unter dem HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP Schlüssel in der Registrierung identifiziert. Dieser Schlüssel wird nur von wenigen älteren Treibern verwendet.

Bemerkungen

Die WDF_PROPERTY_STORE_ROOT Struktur wird als Eingabe für IWDFPropertyStoreFactory::RetrieveDevicePropertyStore und IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStoreStore verwendet.

UMDF-Eigenschaftsspeicher stellen Registrierungsschlüssel dar, auf die Treiber zugreifen können. Bevor Ihr Treiber eine der oben genannten Methoden aufruft, muss er die WDF_PROPERTY_STORE_ROOT Struktur initialisieren. Der Treiber muss die Struktur null und dann das LengthCb-Element auf die Länge der Struktur festlegen.

Um einen Softwareschlüssel zu öffnen, muss der Treiber Folgendes ausführen:

  1. Legen Sie das LengthCb-Element der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassSoftwareKey fest.
Um den Hardwareschlüssel eines Geräts zu öffnen, muss der Treiber Folgendes ausführen:
  1. Legen Sie das LengthCb-Element der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassHardwareKey fest.
  3. Legen Sie einen Wert für den Qualifier.HardwareKey.ServiceName-Member fest. Dieser Wert muss eine der folgenden Sein:
    • WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT öffnen Sie den Unterschlüssel \Device Parameters unter dem Hardwareschlüssel des Geräts. Der Treiber kann nur Lesezugriff auf diesen Unterschlüssel erhalten.
    • WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT, um einen Unterschlüssel zu öffnen, der dem Dienstnamen des Treibers entspricht, unter dem Unterschlüssel \Device Parameters . Der Treiber kann Lese- oder Schreibzugriff auf diesen Unterschlüssel erhalten. Der Treiber kann optional den Unterschlüssel erstellen, wenn er nicht vorhanden ist.
    • Eine vom Treiber bereitgestellte Zeichenzeichenfolge, um einen Unterschlüssel mit einem Namen zu öffnen, der der Zeichenzeichenfolge entspricht, unter dem Unterschlüssel \Device Parameters . Der Treiber kann Lese- oder Schreibzugriff auf diesen Unterschlüssel erhalten. Der Treiber kann optional den Unterschlüssel erstellen, wenn er nicht vorhanden ist.

    Wenn Ihr Treiber einen Unterschlüssel unter dem Hardwareschlüssel eines Geräts erstellt, empfiehlt es sich, WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT anzugeben, da UMDF einen Unterschlüssel erstellt, der dem Dienstnamen des Treibers entspricht. Die Verwendung dieses Namens stellt sicher, dass jeder Treiber einen eindeutig benannten Unterschlüssel erstellt. Der Treiber darf WDF oder WUDF nicht als Unterschlüsselname angeben.

Um einen Geräteschnittstellenschlüssel zu öffnen, muss der Treiber Folgendes ausführen:
  1. Legen Sie das LengthCb-Element der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassDeviceInterfaceKey fest.
  3. Legen Sie das Qualifier.DeviceInterfaceKey.InterfaceGUID-Element auf die GUID fest, die der Treiber auf einen vorherigen Aufruf von IWDFDevice::CreateDeviceInterface angegeben hat.
  4. Legen Sie das Element "Qualifier.DeviceInterfaceKey.ReferenceString " auf die Referenzzeichenfolge fest, die der Treiber auf einen vorherigen Aufruf von IWDFDevice::CreateDeviceInterface oder NULL festgelegt hat, wenn der Treiber keine Verweiszeichenfolge angegeben hat.
Der Treiber kann Lese- oder Schreibzugriff auf den Geräteschnittstellenschlüssel erhalten.

Um den DEVICEMAP-Schlüssel zu öffnen, muss Ihr Treiber Folgendes ausführen:

  1. Legen Sie das LengthCb-Element der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassLegacyHardwareKey fest.
  3. Legen Sie den Qualifier.LegacyHardwareKey.LegacyMapName-Member auf eine Zeichenzeichenfolge fest, die einen Unterschlüssel unter dem HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP Schlüssel in der Registrierung angibt.
Der Treiber kann lese- oder schreibzugriff auf den angegebenen Unterschlüssel unter dem DEVICEMAP-Schlüssel abrufen. Der Treiber kann optional den Unterschlüssel erstellen, wenn er nicht vorhanden ist. Ein Treiber, der diesen Unterschlüssel erstellt, muss jedoch das WdfPropertyStoreCreateVolatile-Flag angeben, damit das System den Unterschlüssel jedes Mal löscht, wenn er neu gestartet wird.

Weitere Informationen zu diesen Registrierungsschlüsseln finden Sie unter Verwenden der Registrierung in UMDF-basierten Treibern.

Anforderungen

   
UMDF-Mindestversion 1.9
Header wudfddi_types.h (einschließen Wudfddi.h)

Siehe auch

IWDFPropertyStoreFactory::RetrieveDevicePropertyStore