NtOpenDirectoryObject function

[This function may be altered or unavailable in the future.]

Opens an existing directory object.

Syntax

NTSTATUS WINAPI NtOpenDirectoryObject(
  _Out_ PHANDLE            DirectoryHandle,
  _In_  ACCESS_MASK        DesiredAccess,
  _In_  POBJECT_ATTRIBUTES ObjectAttributes
);

Parameters

DirectoryHandle [out]

A handle to the newly opened directory object.

DesiredAccess [in]

An ACCESS_MASK that specifies the requested access to the directory object. This parameter can be one or more of the following values.

Value Meaning
DIRECTORY_QUERY
0x0001
Query access to the directory object.
DIRECTORY_TRAVERSE
0x0002
Name-lookup access to the directory object.
DIRECTORY_CREATE_OBJECT
0x0004
Name-creation access to the directory object.
DIRECTORY_CREATE_SUBDIRECTORY
0x0008
Subdirectory-creation access to the directory object.
DIRECTORY_ALL_ACCESS
STANDARD_RIGHTS_REQUIRED | 0xF
All of the preceding rights plus STANDARD_RIGHTS_REQUIRED.

 

ObjectAttributes [in]

The attributes for the directory object. To initialize the OBJECT_ATTRIBUTES structure, use the InitializeObjectAttributes macro. For more information, see the documentation for these items in the documentation for the WDK.

Return value

The function returns STATUS_SUCCESS or an error status. The possible status codes include the following.

Return code Description
STATUS_INSUFFICIENT_RESOURCES
A temporary buffer required by this function could not be allocated.
STATUS_INVALID_PARAMETER
The specified ObjectAttributes parameter was a NULL pointer, not a valid pointer to an OBJECT_ATTRIBUTES structure, or some of the members specified in the OBJECT_ATTRIBUTES structure were not valid.
STATUS_OBJECT_NAME_INVALID
The ObjectAttributes parameter contained an ObjectName member in the OBJECT_ATTRIBUTES structure that was not valid because an empty string was found after the OBJECT_NAME_PATH_SEPARATOR character.
STATUS_OBJECT_NAME_NOT_FOUND
The ObjectAttributes parameter contained an ObjectName member in the OBJECT_ATTRIBUTES structure that could not be found.
STATUS_OBJECT_PATH_NOT_FOUND
The ObjectAttributes parameter contained an ObjectName member in the OBJECT_ATTRIBUTES structure with an object path that could not be found.
STATUS_OBJECT_PATH_SYNTAX_BAD
The ObjectAttributes parameter did not contain a RootDirectory member, but the ObjectName member in the OBJECT_ATTRIBUTES structure was an empty string or did not contain an OBJECT_NAME_PATH_SEPARATOR character. This indicates incorrect syntax for the object path.

 

Remarks

This function has no associated import library or header file; you must call it using the LoadLibrary and GetProcAddress functions.

Requirements

DLL
Ntdll.dll

See also

NtQueryDirectoryObject