Freigeben über


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
STATUS_INVALID_PARAMETER_4
Der OpenOptions-Parameter gibt ungültige Optionen an.
STATUS_OBJECT_PATH_SYNTAX_BAD
Der Registrierungspfad in den Objektattributen ist ungültig.
STATUS_OBJECT_NAME_NOT_FOUND
Der Registrierungsschlüsselname in den Objektattributen wurde nicht gefunden.
STATUS_OBJECT_TYPE_MISMATCH
Der benannte Registrierungsschlüssel ist ein symbolischer Link, aber das REG_OPTION_OPEN_LINK Flagbits ist in OpenOptions nicht festgelegt.
STATUS_ACCESS_DENIED
Der Aufrufer verfügte nicht über die erforderlichen Zugriffsrechte, um ein Handle für den benannten Registrierungsschlüssel zu öffnen.
STATUS_INSUFFICIENT_RESOURCES
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)

Weitere Informationen

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

ZwClose

ZwOpenKey