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 |
---|---|
|
Ein temporärer Puffer, der von dieser Routine benötigt wird, 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, die ungültig war, da nach dem OBJECT_NAME_PATH_SEPARATOR Zeichen eine leere Zeichenfolge gefunden wurde. |
|
Der ObjectAttributes Parameter enthielt ein ObjectName Feld in der OBJECT_ATTRIBUTES Struktur, die nicht gefunden werden konnte. |
|
Der ObjectAttributes Parameter enthielt ein ObjectName Feld in der OBJECT_ATTRIBUTES Struktur mit einem Objektpfad, der nicht gefunden werden konnte. |
|
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.
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
Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen