Freigeben über


IoOpenDeviceRegistryKey-Funktion (wdm.h)

Die IoOpenDeviceRegistryKey-Routine gibt ein Handle an einen Registrierungsstatusspeicherort für eine bestimmte Geräteinstanz zurück.

Syntax

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

Parameter

[in] DeviceObject

Zeigen Sie auf das physisches Geräteobjekt (PDO) der Geräteinstanz, für die 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 Kennzeichen sind wie folgt definiert:

PLUGPLAY_REGKEY_DEVICE

Öffnen Sie den Hardwareschlüssel des Geräts, einen gerätespezifischen Registrierungsstatusspeicherort, der Informationen über das 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 Konfigurationsinformationen zugreifen, die hardwarespezifisch sind. Der Aufrufer muss entweder PLUGPLAY_REGKEY_DEVICE oder PLUGPLAY_REGKEY_DRIVER mit dieser Kennzeichnung angeben.

[in] DesiredAccess

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

[out] DeviceRegKey

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

Rückgabewert

IoOpenDeviceRegistryKey gibt STATUS_SUCCESS zurück, wenn der Anruf 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 keine gültige PDO ist.

Bemerkungen

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

Die von dieser Routine geöffneten Registrierungsschlüssel sind nicht unvolatile.

Benutzermodus-Setupanwendungen können über CM_Open_DevNode_Key oder Geräteinformationsfunktionen wie SetupDiOpenDevRegKey oder SetupDiCreateDevRegKeyauf diese Registrierungsschlüssel zugreifen.

Verwenden Sie INF-AddReg-Direktiven in einer INF-Datei, um den Zustand an diesen Registrierungsstatusspeicherorten vorzufüllen.

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

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Siehe auch

Einführung in Registrierungsschlüssel für Treiber

ACCESS_MASK

ZwCreateKey-

ZwClose

Geräteknoten und Gerätestapel