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