ZwCreateDirectoryObject 函数 (wdm.h)

ZwCreateDirectoryObject 例程创建或打开 object-directory 对象。

语法

NTSYSAPI NTSTATUS ZwCreateDirectoryObject(
  [out] PHANDLE            DirectoryHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

参数

[out] DirectoryHandle

指向 HANDLE 变量的指针,该变量接收对象目录的句柄。

[in] DesiredAccess

指定一个 ACCESS_MASK 值,该值确定对 对象的请求访问权限。 除了为所有类型的对象定义的访问权限 (查看 ACCESS_MASK) 之外,调用方还可以指定以下一个或多个特定于对象目录的访问权限:

ACCESS_MASK标志 访问类型
DIRECTORY_QUERY 查询
DIRECTORY_TRAVERSE 名称查找
DIRECTORY_CREATE_OBJECT 名称创建
DIRECTORY_CREATE_SUBDIRECTORY 创建子目录
DIRECTORY_ALL_ACCESS 上述所有类型

[in] ObjectAttributes

指向包含对象属性的 OBJECT_ATTRIBUTES 结构的指针,必须已通过调用 InitializeObjectAttributes 对其进行初始化。

返回值

ZwCreateDirectoryObject 返回 NTSTATUS 值。 可能的返回值包括:

注解

不再使用 DirectoryHandle 指向的句柄后,驱动程序必须调用 ZwClose 将其关闭。

如果调用方未在系统线程上下文中运行,则必须确保它创建的任何句柄都是专用句柄。 否则,运行驱动程序的上下文中的进程可以访问句柄。 有关详细信息,请参阅 对象句柄

系统使用对象目录来组织其他类型的对象,例如设备对象。 有关详细信息,请参阅 对象目录

系统不使用对象目录对象来表示文件系统目录,而文件系统目录表示为文件对象。

如果在用户模式下调用此函数,则应使用名称“NtCreateDirectoryObject”而不是“ZwCreateDirectoryObject”。

对于来自内核模式驱动程序的调用,Windows Native System Services 例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

ACCESS_MASK

InitializeObjectAttributes

使用本机系统服务例程的 Nt 和 Zw 版本

ZwClose