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) |