Freigeben über


ZwOpenDirectoryObject-Funktion (ntifs.h)

Die ZwOpenDirectoryObject Routine öffnet ein vorhandenes Verzeichnisobjekt.

Syntax

NTSYSAPI NTSTATUS ZwOpenDirectoryObject(
  [out] PHANDLE            DirectoryHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Parameter

[out] DirectoryHandle

Handle für das neu geöffnete Verzeichnisobjekt.

[in] DesiredAccess

Eine ACCESS_MASK Struktur, die die angeforderten Zugriffstypen für dieses Verzeichnisobjekt angibt. Ein Aufrufer kann eine oder eine Kombination aus folgendem Angeben angeben.

DesiredAccess Flags Bedeutung
DIRECTORY_QUERY Abfragezugriff auf das Verzeichnisobjekt
DIRECTORY_TRAVERSE Name-Lookup-Zugriff auf das Verzeichnisobjekt
DIRECTORY_CREATE_OBJECT Name-Creation-Zugriff auf das Verzeichnisobjekt
DIRECTORY_CREATE_SUBDIRECTORY Unterverzeichniserstellungszugriff auf das Verzeichnisobjekt
DIRECTORY_ALL_ACCESS Alle vorstehenden Rechte plus STANDARD_RIGHTS_REQUIRED.
 

Diese angeforderten Zugriffstypen werden mit der diskretionären Zugriffssteuerungsliste (DACL-) des Objekts verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.

[in] ObjectAttributes

Angegebene Attribute für das verzeichnisobjekt, das vom Aufrufer bereitgestellt wird. Dieser Parameter wird durch Aufrufen des InitializeObjectAttributes Makros initialisiert.

Rückgabewert

ZwOpenDirectoryObject gibt STATUS_SUCCESS oder einen entsprechenden Fehlerstatus zurück. Zu den häufigsten Fehlerstatuscodes gehören:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Ein temporärer Puffer, der von dieser Routine benötigt wird, konnte nicht zugeordnet werden.
STATUS_INVALID_PARAMETER
Der angegebene ObjectAttributes- Parameter war ein NULL Zeiger, kein gültiger Zeiger auf eine OBJECT_ATTRIBUTES-Struktur, oder einige der in der OBJECT_ATTRIBUTES Struktur angegebenen Felder waren ungültig.
STATUS_OBJECT_NAME_INVALID
Der ObjectAttributes- Parameter enthielt ein ObjectName Feld in der OBJECT_ATTRIBUTES Struktur, die ungültig war, da nach dem OBJECT_NAME_PATH_SEPARATOR Zeichen eine leere Zeichenfolge gefunden wurde.
STATUS_OBJECT_NAME_NOT_FOUND
Der ObjectAttributes Parameter enthielt ein ObjectName Feld in der OBJECT_ATTRIBUTES Struktur, die nicht gefunden werden konnte.
STATUS_OBJECT_PATH_NOT_FOUND
Der ObjectAttributes Parameter enthielt ein ObjectName Feld in der OBJECT_ATTRIBUTES Struktur mit einem Objektpfad, der nicht gefunden werden konnte.
STATUS_OBJECT_PATH_SYNTAX_BAD
Der ObjectAttributes- Parameter enthielt kein RootDirectory- Feld, aber das ObjectName-Feld in der OBJECT_ATTRIBUTES-Struktur war eine leere Zeichenfolge oder enthielt kein OBJECT_NAME_PATH_SEPARATOR Zeichen. Dies gibt eine falsche Syntax für den Objektpfad an.
 

Die ZwOpenDirectoryObject- Routine löst eine Ausnahme aus, wenn der DirectoryHandle Parameter ein unzulässiger Zeiger ist.

Bemerkungen

ZwOpenDirectoryObject öffnet ein vorhandenes Verzeichnisobjekt und gibt ein Handle an das Objekt zurück.

Die ZwOpenDirectoryObject Routine wird aufgerufen, nachdem das InitializeObjectAttributes Makros verwendet wird, um bestimmte Attribute der OBJECT_ATTRIBUTES Struktur für das zu öffnende Objekt zu initialisieren.

Ein Verzeichnisobjekt wird mithilfe der ZwCreateDirectoryObject Routine-erstellt. Alle Handle, die durch Aufrufen von ZwOpenDirectoryObject abgerufen werden, müssen schließlich durch Aufrufen von ZwClosefreigegeben werden.

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.

Hinweis Wenn der Aufruf der funktion ZwCreateDirectoryObject im Benutzermodus auftritt, sollten Sie den Namen "NtCreateDirectoryObject" anstelle von "ZwCreateDirectoryObject" verwenden.
 
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP
Zielplattform- Universal
Header- ntifs.h (include Ntdef.h, Ntifs.h, Fltkernel.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Siehe auch

ACCESS_MASK

ACL-

InitializeObjectAttributes-

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

ZwClose

ZwCreateDirectoryObject