Freigeben über


ZwOpenKey-Funktion (wdm.h)

Die ZwOpenKey-Routine öffnet einen vorhandenen Registrierungsschlüssel.

Syntax

NTSYSAPI NTSTATUS ZwOpenKey(
  [out] PHANDLE            KeyHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Parameter

[out] KeyHandle

Zeiger auf die HANDLE-Variable, die das Handle auf den Schlüssel empfängt.

[in] DesiredAccess

Gibt einen ACCESS_MASK Wert an, der den angeforderten Zugriff auf das Objekt bestimmt. Weitere Informationen finden Sie im DesiredAccess-Parameter von ZwCreateKey.

[in] ObjectAttributes

Zeiger auf eine OBJECT_ATTRIBUTES-Struktur , die den Objektnamen und andere Attribute angibt. Verwenden Sie InitializeObjectAttributes , um diese Struktur zu initialisieren. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er das attribut OBJ_KERNEL_HANDLE festlegen, wenn initializeObjectAttributes aufgerufen wird.

Rückgabewert

ZwOpenKey gibt STATUS_SUCCESS zurück, wenn der angegebene Schlüssel geöffnet wurde. Andernfalls kann ein Fehler status zurückgegeben werden, einschließlich der folgenden:

  • STATUS_INVALID_HANDLE

  • STATUS_ACCESS_DENIED

Hinweise

ZwOpenKey stellt ein Handle bereit, mit dem der Aufrufer einen Registrierungsschlüssel bearbeiten kann. Die Routine stellt eine Teilmenge der Funktionalität von ZwCreateKey bereit. Weitere Informationen finden Sie unter Verwenden der Registrierung in einem Treiber.

Wenn der angegebene Schlüssel nicht vorhanden ist, gibt ZwOpenKey einen Fehler status und kein Schlüsselhandle zurück.

Sobald das Handle, auf das keyHandle verweist, nicht mehr verwendet wird, muss der Treiber ZwClose aufrufen, um es zu schließen.

ZwOpenKey ignoriert die Sicherheitsinformationen in der Struktur, auf die der ObjectAttributes-Parameter verweist.

Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss sichergestellt werden, dass es sich bei allen von ihr erstellten Handles um private Handles handelt. Andernfalls kann der Prozess, in dessen Kontext der Treiber ausgeführt wird, auf das Handle zugreifen. Weitere Informationen finden Sie unter Objekthandles.

Weitere Informationen zum Arbeiten mit Registrierungsschlüsseln finden Sie unter Verwenden der Registrierung in einem Treiber.

Wenn der Aufruf dieser Funktion im Benutzermodus erfolgt, sollten Sie den Namen "NtOpenKey" anstelle von "ZwOpenKey" verwenden.

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
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm)

Weitere Informationen

ACCESS_MASK

InitializeObjectAttributes

ZwCreateKey

ZwDeleteKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwFlushKey

ZwQueryKey

ZwQueryValueKey

ZwSetValueKey