ZwOpenKeyEx-Funktion (wdm.h)
Die ZwOpenKeyEx-Routine öffnet einen vorhandenen Registrierungsschlüssel.
Syntax
NTSYSAPI NTSTATUS ZwOpenKeyEx(
[out] PHANDLE KeyHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[in] ULONG OpenOptions
);
Parameter
[out] KeyHandle
Ein Zeiger auf eine HANDLE-Variable, in die die Routine den Handle in den Schlüssel schreibt.
[in] DesiredAccess
Gibt den Typ des Zugriffs auf den Schlüssel an, den der Aufrufer anfordert. Dieser Parameter ist ein ACCESS_MASK Wert. Weitere Informationen finden Sie in der Beschreibung des DesiredAccess-Parameters der ZwCreateKey-Routine .
[in] ObjectAttributes
Ein Zeiger auf die Objektattribute des geöffneten Schlüssels. Dieser Parameter verweist auf eine OBJECT_ATTRIBUTES-Struktur , die zuvor von der InitializeObjectAttributes-Routine initialisiert worden sein muss. Der Aufrufer muss den Namen des Registrierungsschlüssels als ObjectName-Parameter im Aufruf von InitializeObjectAttributes angeben. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er das attribut OBJ_KERNEL_HANDLE festlegen, wenn initializeObjectAttributes aufgerufen wird.
[in] OpenOptions
Gibt die Optionen an, die beim Öffnen des Schlüssels angewendet werden sollen. Legen Sie diesen Parameter auf null oder auf den bitweisen OR eines oder mehrerer der folgenden REG_OPTION_XXX-Flagbits fest:
OpenOptions-Flag | BESCHREIBUNG |
---|---|
REG_OPTION_OPEN_LINK | Der Schlüssel ist eine symbolische Verbindung. Dieses Flag wird nicht von Geräte- und Zwischentreibern verwendet. |
REG_OPTION_BACKUP_RESTORE | Der Schlüssel sollte mit speziellen Berechtigungen geöffnet werden, die Sicherungs- und Wiederherstellungsvorgänge ermöglichen. Dieses Flag wird nicht von Geräte- und Zwischentreibern verwendet. |
Rückgabewert
ZwOpenKeyEx gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich den Schlüssel öffnet. Mögliche Fehlerrückgabewerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Der OpenOptions-Parameter gibt ungültige Optionen an. |
|
Der Registrierungspfad in den Objektattributen ist ungültig. |
|
Der Registrierungsschlüsselname in den Objektattributen wurde nicht gefunden. |
|
Der benannte Registrierungsschlüssel ist ein symbolischer Link, aber das REG_OPTION_OPEN_LINK Flagbits ist in OpenOptions nicht festgelegt. |
|
Der Aufrufer verfügte nicht über die erforderlichen Zugriffsrechte, um ein Handle für den benannten Registrierungsschlüssel zu öffnen. |
|
Fehler bei einem Speicherbelegungsvorgang. |
Hinweise
Diese Routine stellt ein Handle bereit, mit dem der Aufrufer auf einen Registrierungsschlüssel zugreifen kann. Wenn der angegebene Schlüssel nicht vorhanden ist, gibt die Routine einen Fehler status Wert zurück und stellt kein Schlüsselhandle zur Verfügung.
Die ZwOpenKey-Routine ähnelt ZwOpenKeyEx , akzeptiert jedoch keinen OpenOptions-Parameter . Mit dem OpenOptions-Parameter von ZwOpenKeyEx kann der Aufrufer einen Schlüssel öffnen, der eine symbolische Verknüpfung darstellt, oder einen Schlüssel für Sicherungs- und Wiederherstellungsvorgänge öffnen. Ein Aufruf von ZwOpenKeyEx mit OpenOptions = 0 entspricht einem Aufruf von ZwOpenKey.
Nachdem der von KeyHandle angezeigte Handle nicht mehr verwendet wird, muss der Treiber ZwClose aufrufen, um ihn zu schließen.
ZwOpenKeyEx ignoriert die Sicherheitsinformationen in der Struktur, auf die der ObjectAttributes-Parameter verweist.
Wenn der Kernelmodusaufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er sicherstellen, dass alle von diesem erstellten Handles Kernelhandles sind. 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 im Kernelmodus finden Sie unter Verwenden der Registrierung in einem Treiber.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 7 und späteren Windows-Versionen. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |