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 mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 in neueren Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte 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 dieser Struktur in Bytes.

RootClass

Ein WDF_PROPERTY_STORE_ROOT_CLASS typisierter Wert, der einen Eigenschaftenspeicher identifiziert.

Qualifier

Qualifier.HardwareKey

Qualifier.HardwareKey.ServiceName

Ein Zeiger auf eine NULL-endende Zeichenfolge, die einen treiberspezifischen Unterschlüssel unter dem Hardwareschlüssel eines Geräts in der Registrierung identifiziert. Weitere Informationen zu diesem Member 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-endende Zeichenfolge, die eine Verweiszeichenfolge für eine Geräteschnittstelle identifiziert. Der Treiber muss diesen Member angeben, wenn er beim Aufrufen von IWDFDevice::CreateDeviceInterface eine Verweiszeichenfolge angegeben hat. Andernfalls muss dieser Member NULL sein.

Qualifier.LegacyHardwareKey

Qualifier.LegacyHardwareKey.LegacyMapName

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

Hinweise

Die WDF_PROPERTY_STORE_ROOT-Struktur wird als Eingabe für IWDFPropertyStoreFactory::RetrieveDevicePropertyStore und IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 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 den LengthCb-Member auf die Länge der Struktur festlegen.

Um einen Softwareschlüssel zu öffnen, muss Ihr Treiber:

  1. Legen Sie den LengthCb-Member 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 Ihr Treiber:
  1. Legen Sie den LengthCb-Member 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 das Element Qualifier.HardwareKey.ServiceName fest. Dieser Wert muss einer der folgenden Werte sein:
    • WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT, um den Unterschlüssel \Device Parameters unter dem Hardwareschlüssel des Geräts zu öffnen. Der Treiber kann nur Lesezugriff auf diesen Unterschlüssel erhalten.
    • WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT, um unter dem Unterschlüssel \Device Parameters einen Unterschlüssel zu öffnen, der dem Dienstnamen des Treibers entspricht. 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 Zeichenfolge, um unter dem Unterschlüssel \Device Parameters einen Unterschlüssel mit einem Namen zu öffnen, der der Zeichenfolge entspricht. 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 nicht WDF oder WUDF als Unterschlüsselnamen angeben.

Um einen Geräteschnittstellenschlüssel zu öffnen, muss Ihr Treiber:
  1. Legen Sie den LengthCb-Member der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassDeviceInterfaceKey fest.
  3. Legen Sie den Member Qualifier.DeviceInterfaceKey.InterfaceGUID auf die GUID fest, die der Treiber für einen vorherigen Aufruf von IWDFDevice::CreateDeviceInterface angegeben hat.
  4. Legen Sie den Member Qualifier.DeviceInterfaceKey.ReferenceString auf die Verweiszeichenfolge fest, die der Treiber für einen vorherigen Aufruf von IWDFDevice::CreateDeviceInterface angegeben hat, oder NULL , 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:

  1. Legen Sie den LengthCb-Member der Struktur auf die Strukturgröße fest.
  2. Legen Sie das RootClass-Element der Struktur auf WdfPropertyStoreRootClassLegacyHardwareKey fest.
  3. Legen Sie das Element Qualifier.LegacyHardwareKey.LegacyMapName auf eine Zeichenfolge 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 erhalten. 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 bei jedem Neustart löscht.

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

Anforderungen

Anforderung Wert
UMDF-Mindestversion 1.9
Kopfzeile wudfddi_types.h (schließen Sie Wudfddi.h ein)

Weitere Informationen

IWDFPropertyStoreFactory::RetrieveDevicePropertyStore