ZwOpenDirectoryObject 함수(ntifs.h)
ZwOpenDirectoryObject 루틴은 기존 디렉터리 개체를 엽니다.
통사론
NTSYSAPI NTSTATUS ZwOpenDirectoryObject(
[out] PHANDLE DirectoryHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
매개 변수
[out] DirectoryHandle
새로 연 디렉터리 개체에 대한 핸들입니다.
[in] DesiredAccess
이 디렉터리 개체에 대해 요청되는 액세스 유형을 지정하는 ACCESS_MASK 구조체입니다. 호출자는 다음 중 하나 또는 조합을 지정할 수 있습니다.
desiredAccess 플래그 |
의미 |
---|---|
DIRECTORY_QUERY | 디렉터리 개체에 대한 쿼리 액세스 |
DIRECTORY_TRAVERSE | 디렉터리 개체에 대한 이름 조회 액세스 |
DIRECTORY_CREATE_OBJECT | 디렉터리 개체에 대한 이름 만들기 액세스 |
DIRECTORY_CREATE_SUBDIRECTORY | 디렉터리 개체에 대한 하위 디렉터리 만들기 액세스 |
DIRECTORY_ALL_ACCESS | 위의 모든 권한과 STANDARD_RIGHTS_REQUIRED. |
이러한 요청된 액세스 유형은 개체의 임의 액세스 제어 목록(DACL)과 비교하여 부여되거나 거부된 액세스 권한을 결정합니다.
[in] ObjectAttributes
호출자가 제공한 디렉터리 개체에 대해 지정된 특성입니다. 이 매개 변수는 InitializeObjectAttributes 매크로를 호출하여 초기화됩니다.
반환 값
ZwOpenDirectoryObject STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 가장 일반적인 오류 상태 코드는 다음과 같습니다.
반환 코드 | 묘사 |
---|---|
|
이 루틴에 필요한 임시 버퍼를 할당할 수 없습니다. |
|
지정한 ObjectAttributes 매개 변수는 OBJECT_ATTRIBUTES 구조체에 대한 유효한 포인터가 아닌 NULL 포인터이거나 OBJECT_ATTRIBUTES 구조에 지정된 필드 중 일부가 잘못되었습니다. |
|
ObjectAttributes 매개 변수에는 OBJECT_NAME_PATH_SEPARATOR 문자 뒤의 빈 문자열이 발견되었기 때문에 유효하지 않은 OBJECT_ATTRIBUTES 구조체의 ObjectName 필드가 포함되어 있습니다. |
|
ObjectAttributes 매개 변수에는 찾을 수 없는 OBJECT_ATTRIBUTES 구조체의 ObjectName 필드가 포함되어 있습니다. |
|
ObjectAttributes 매개 변수에는 개체 경로를 찾을 수 없는 OBJECT_ATTRIBUTES 구조체의 ObjectName 필드가 포함되어 있습니다. |
|
ObjectAttributes 매개 변수에 RootDirectory 필드가 없지만 OBJECT_ATTRIBUTES 구조의 ObjectName 필드는 빈 문자열이거나 OBJECT_NAME_PATH_SEPARATOR 문자를 포함하지 않았습니다. 개체 경로에 대한 잘못된 구문을 나타냅니다. |
ZwOpenDirectoryObject 루틴은 DirectoryHandle 매개 변수가 잘못된 포인터인 경우 예외를 throw합니다.
발언
ZwOpenDirectoryObject 기존 디렉터리 개체를 열고 개체에 대한 핸들을 반환합니다.
ZwOpenDirectoryObject 루틴은 InitializeObjectAttributes 매크로를 사용하여 열려는 개체에 대한 OBJECT_ATTRIBUTES 구조체의 특정 특성을 초기화한 후에 호출됩니다.
디렉터리 개체는 ZwCreateDirectoryObject 루틴사용하여 만들어집니다. ZwOpenDirectoryObject 호출하여 얻은 모든 핸들은 결국 ZwClose호출하여 해제되어야 합니다.
보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntdef.h, Ntifs.h, Fltkernel.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
PASSIVE_LEVEL |
DDI 규정 준수 규칙 |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
참고 항목
ACL
네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용
ZwClose
ZwCreateDirectoryObject