ZwOpenEnlistment 函数 (wdm.h)

ZwOpenEnlistment 例程获取现有登记对象的句柄

语法

NTSYSCALLAPI NTSTATUS ZwOpenEnlistment(
  [out]          PHANDLE            EnlistmentHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             RmHandle,
  [in]           LPGUID             EnlistmentGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);

参数

[out] EnlistmentHandle

指向调用方分配的变量的指针,如果 对 ZwOpenEnlistment 的调用成功,该变量接收登记对象的句柄。

[in] DesiredAccess

一个ACCESS_MASK类型的值,该值指定请求对登记对象的访问权限。 有关如何指定此参数的详细信息,请参阅 ZwCreateEnlistmentDesiredAccess 参数。 此参数不能为零。

[in] RmHandle

资源管理器对象的句柄,该句柄是通过之前对 ZwCreateResourceManagerZwOpenResourceManager 的调用获取的。

[in] EnlistmentGuid

指向标识登记的 GUID 的指针。 有关更多信息,请参见下面的“备注”部分。

[in, optional] ObjectAttributes

指向 OBJECT_ATTRIBUTES 结构的指针,该结构指定对象的属性。 使用 InitializeObjectAttributes 例程初始化此结构,但仅指定该例程的 InitializedAttributesAttributes 参数。 如果调用方未在系统线程上下文中运行,则必须在 Attributes 参数中设置OBJ_KERNEL_HANDLE标志。 此参数是可选的,可以为 NULL

返回值

如果操作成功,ZwOpenEnlistment 将返回STATUS_SUCCESS。 否则,此例程可能会返回以下值之一:

返回代码 说明
STATUS_INVALID_HANDLE
对象句柄无效。
STATUS_ACCESS_DENIED
调用方对登记对象没有适当的访问权限。
STATUS_INVALID_PARAMETER
DesiredAccess 参数的值为零,或者 EnlistmentGuid 参数的值为 NULL
STATUS_ENLISTMENT_NOT_FOUND
EnlistmentGuid 参数指定的登记对于 RmHandle 参数指定的资源管理器不存在。
STATUS_ACCESS_DENIED
DesiredAccess 参数的值无效。
 

例程可能会返回其他 NTSTATUS 值

注解

通常,TPS 组件在收到来自另一个以前名为 ZwCreateEnlistment 的 TPS 组件的登记 GUID 后调用 ZwOpenEnlistment。 大多数 TPS 设计不需要调用 ZwOpenEnlistment

调用 ZwOpenEnlistment 的资源管理器最终必须调用 ZwClose 以关闭对象句柄。

有关 ZwOpenEnlistment 的详细信息,请参阅 登记对象

NtOpenEnlistmentZwOpenEnlistment 是同一 Windows 本机系统服务例程的两个版本。

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

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的操作系统中可用。
目标平台 通用
标头 wdm.h (包括 Wdm.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager

ZwQueryInformationEnlistment

ZwSetInformationEnlistment