IoOpenDeviceRegistryKey-Funktion (wdm.h)

Die IoOpenDeviceRegistryKey-Routine gibt ein Handle an einen Registrierungsstatusspeicherort für ein bestimmtes Gerät instance zurück.

Syntax

NTSTATUS IoOpenDeviceRegistryKey(
  [in]  PDEVICE_OBJECT DeviceObject,
  [in]  ULONG          DevInstKeyType,
  [in]  ACCESS_MASK    DesiredAccess,
  [out] PHANDLE        DeviceRegKey
);

Parameter

[in] DeviceObject

Zeiger auf das Objekt des physischen Geräts (PDO) des Geräts instance, für das der Registrierungsstatusspeicherort geöffnet werden soll.

[in] DevInstKeyType

Gibt Flags an, die angeben, ob ein gerätespezifischer Hardwareschlüssel oder ein treiberspezifischer Softwareschlüssel geöffnet werden soll. Die Flags geben auch an, ob der Schlüssel relativ zum aktuellen Hardwareprofil ist. Weitere Informationen zu Hardware- und Softwareschlüsseln finden Sie unter Einführung in Registrierungsschlüssel für Treiber.

Die Flags werden wie folgt definiert:

PLUGPLAY_REGKEY_DEVICE

Öffnen Sie den Hardwareschlüssel des Geräts, einen gerätespezifischen Registrierungsstatusspeicherort, der Informationen zum Gerät enthält. Dieses Flag kann nicht mit PLUGPLAY_REGKEY_DRIVER angegeben werden.

PLUGPLAY_REGKEY_DRIVER

Öffnen Sie den Softwareschlüssel des Geräts, einen gerätespezifischen Registrierungsstatusspeicherort zum Speichern treiberspezifischer Informationen. Dieses Flag kann nicht mit PLUGPLAY_REGKEY_DEVICE angegeben werden.

PLUGPLAY_REGKEY_CURRENT_HWPROFILE

Hardwareprofile sind veraltet, und der Zustand sollte nicht relativ zu einem Hardwareprofil gespeichert werden.

Öffnen Sie einen Schlüssel relativ zum aktuellen Hardwareprofil für Geräte- oder Treiberinformationen. Dadurch kann der Treiber auf hardwareprofilspezifische Konfigurationsinformationen zugreifen. Der Aufrufer muss entweder PLUGPLAY_REGKEY_DEVICE oder PLUGPLAY_REGKEY_DRIVER mit diesem Flag angeben.

[in] DesiredAccess

Gibt den ACCESS_MASK Wert an, der den Zugriff darstellt, den der Aufrufer auf den Schlüssel benötigt. Eine Beschreibung der einzelnen KEY_XXX-Zugriffsrechte finden Sie in der ZwCreateKey-Routine.

[out] DeviceRegKey

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der bei erfolgreicher Rückgabe ein Handle zum angeforderten Registrierungsstatusspeicherort enthält.

Rückgabewert

IoOpenDeviceRegistryKey gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Mögliche Fehlerrückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER Gibt möglicherweise an, dass der Aufrufer einen unzulässigen Satz von DevInstKeyType-Flags angegeben oder ein DeviceObject bereitgestellt hat , das kein gültiges PDO ist.

Hinweise

Der Treiber muss ZwClose aufrufen, um das von dieser Routine zurückgegebene Handle zu schließen, wenn kein Zugriff mehr erforderlich ist.

Die registrierungsschlüssel, die von dieser Routine geöffnet werden, sind nicht unveränderlich.

Benutzermodus-Setupanwendungen können mithilfe von CM_Open_DevNode_Key - oder Geräteinformationsfunktionen wie SetupDiOpenDevRegKey oder SetupDiCreateDevRegKey auf diese Registrierungsschlüssel zugreifen.

Um den Status in diesen Registrierungsstatusspeicherorten zum Zeitpunkt der Treiberpaketinstallation vorab aufzufüllen, verwenden Sie INF AddReg-Anweisungen in einer INF-Datei.

Aufrufer von IoOpenDeviceRegistryKey müssen unter IRQL = PASSIVE_LEVEL im Kontext eines Systemthreads ausgeführt werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

Einführung in Registrierungsschlüssel für Treiber

ACCESS_MASK

ZwCreateKey

ZwClose

Geräteknoten und Gerätestapel