다음을 통해 공유


NtOpenDirectoryObject 함수

[이 함수는 나중에 변경되거나 사용할 수 없습니다.]

기존 디렉터리 개체를 엽니다.

구문

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

매개 변수

DirectoryHandle [out]

새로 연 디렉터리 개체에 대한 핸들입니다.

DesiredAccess [in]

디렉터리 개체에 대한 요청된 액세스를 지정하는 ACCESS_MASK . 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
DIRECTORY_QUERY
0x0001
디렉터리 개체에 대한 액세스를 쿼리합니다.
DIRECTORY_TRAVERSE
0x0002
디렉터리 개체에 대한 이름 조회 액세스입니다.
DIRECTORY_CREATE_OBJECT
0x0004
디렉터리 개체에 대한 이름 만들기 액세스 권한입니다.
DIRECTORY_CREATE_SUBDIRECTORY
0x0008
디렉터리 개체에 대한 하위 디렉터리 만들기 액세스 권한입니다.
DIRECTORY_ALL_ACCESS
STANDARD_RIGHTS_REQUIRED | 0xF
위의 모든 권한과 STANDARD_RIGHTS_REQUIRED.

 

ObjectAttributes [in]

디렉터리 개체의 특성입니다. OBJECT_ATTRIBUTES 구조를 초기화하려면 InitializeObjectAttributes 매크로를 사용합니다. 자세한 내용은 WDK 설명서에서 이러한 항목에 대한 설명서를 참조하세요.

반환 값

함수는 STATUS_SUCCESS 또는 오류 상태 반환합니다. 가능한 상태 코드에는 다음이 포함됩니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
이 함수에 필요한 임시 버퍼를 할당할 수 없습니다.
STATUS_INVALID_PARAMETER
지정한 ObjectAttributes 매개 변수가 NULL 포인터이거나 OBJECT_ATTRIBUTES 구조체에 대한 유효한 포인터가 아니거나 OBJECT_ATTRIBUTES 구조체에 지정된 멤버 중 일부가 유효하지 않았습니다.
STATUS_OBJECT_NAME_INVALID
ObjectAttributes 매개 변수에는 OBJECT_NAME_PATH_SEPARATOR 문자 뒤에 빈 문자열이 있으므로 유효하지 않은 OBJECT_ATTRIBUTES 구조체에 ObjectName 멤버가 포함되어 있습니다.
STATUS_OBJECT_NAME_NOT_FOUND
ObjectAttributes 매개 변수에는 찾을 수 없는 OBJECT_ATTRIBUTES 구조체에 ObjectName 멤버가 포함되어 있습니다.
STATUS_OBJECT_PATH_NOT_FOUND
ObjectAttributes 매개 변수에는 찾을 수 없는 개체 경로가 있는 OBJECT_ATTRIBUTES 구조체에 ObjectName 멤버가 포함되어 있습니다.
STATUS_OBJECT_PATH_SYNTAX_BAD
ObjectAttributes 매개 변수에 RootDirectory 멤버가 없지만 OBJECT_ATTRIBUTES 구조체의 ObjectName 멤버는 빈 문자열이거나 OBJECT_NAME_PATH_SEPARATOR 문자를 포함하지 않았습니다. 이는 개체 경로에 대한 잘못된 구문을 나타냅니다.

 

설명

이 함수에는 연결된 가져오기 라이브러리 또는 헤더 파일이 없습니다. LoadLibraryGetProcAddress 함수를 사용하여 호출해야 합니다.

요구 사항

요구 사항
DLL
Ntdll.dll

추가 정보

NtQueryDirectoryObject