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 angibt, die für dieses Verzeichnisobjekt angefordert werden. Ein Aufrufer kann eine oder eine Kombination aus folgendem angeben.
DesiredAccess Flaggen | Bedeutung |
---|---|
DIRECTORY_QUERY | Abfragen des Zugriffs auf das Verzeichnisobjekt |
DIRECTORY_TRAVERSE | Name-Lookup-Zugriff auf das Verzeichnisobjekt |
DIRECTORY_CREATE_OBJECT | Nameerstellungszugriff auf das Verzeichnisobjekt |
DIRECTORY_CREATE_SUBDIRECTORY | Unterverzeichniserstellungszugriff auf das Verzeichnisobjekt |
DIRECTORY_ALL_ACCESS | Alle oben genannten Rechte plus STANDARD_RIGHTS_REQUIRED. |
Diese angeforderten Zugriffstypen werden mit der dacl (Discretionary Access Control List) des Objekts verglichen, um zu bestimmen, welche Zugriffe gewährt oder verweigert werden.
[in] ObjectAttributes
Angegebene Attribute für das vom Aufrufer bereitgestellte Verzeichnisobjekt. Dieser Parameter wird durch Aufrufen des InitializeObjectAttributes-Makros initialisiert.
Rückgabewert
ZwOpenDirectoryObject gibt STATUS_SUCCESS oder einen geeigneten Fehler status zurück. Die häufigsten Fehler status Codes sind:
Rückgabecode | Beschreibung |
---|---|
|
Ein temporärer Puffer, der für diese Routine erforderlich ist, konnte nicht zugeordnet werden. |
|
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. |
|
Der ObjectAttributes-Parameter enthielt ein ObjectName-Feld in der OBJECT_ATTRIBUTES-Struktur , das ungültig war, da nach dem OBJECT_NAME_PATH_SEPARATOR Zeichen eine leere Zeichenfolge gefunden wurde. |
|
Der Parameter ObjectAttributes enthielt ein ObjectName-Feld in der OBJECT_ATTRIBUTES-Struktur , das nicht gefunden werden konnte. |
|
Der Parameter ObjectAttributes enthielt ein ObjectName-Feld in der OBJECT_ATTRIBUTES-Struktur mit einem Objektpfad, der nicht gefunden wurde. |
|
Der Parameter ObjectAttributes 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 weist auf eine falsche Syntax für den Objektpfad hin. |
Die ZwOpenDirectoryObject-Routine löst eine Ausnahme aus, wenn der DirectoryHandle-Parameter ein unzulässiger Zeiger ist.
Hinweise
ZwOpenDirectoryObject öffnet ein vorhandenes Verzeichnisobjekt und gibt ein Handle an das Objekt zurück.
Die ZwOpenDirectoryObject-Routine wird aufgerufen, nachdem das InitializeObjectAttributes-Makro verwendet wurde, um bestimmte Attribute der OBJECT_ATTRIBUTES-Struktur für das zu öffnende Objekt zu initialisieren.
Ein Verzeichnisobjekt wird mithilfe der ZwCreateDirectoryObject-Routine erstellt. Jedes Handle, das durch den Aufruf von ZwOpenDirectoryObject abgerufen wird, muss schließlich durch Aufrufen von ZwClose freigegeben werden.
Weitere Informationen zur Sicherheit und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und in der Dokumentation zu diesen Themen im Windows SDK.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP |
Zielplattform | Universell |
Header | ntifs.h (einschließen Ntdef.h, Ntifs.h, Fltkernel.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |