NtOpenEnlistment 函数 (wdm.h)

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

语法

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

参数

[out] EnlistmentHandle

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

[in] DesiredAccess

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

[in] ResourceManagerHandle

以前调用 ZwCreateResourceManagerZwOpenResourceManager获取的资源管理器对象的句柄。

[in] EnlistmentGuid

指向标识登记的 GUID 的指针。 有关详细信息,请参阅以下“备注”部分。

[in, optional] ObjectAttributes

指向指定对象的属性的 OBJECT_ATTRIBUTES 结构的指针。 使用 InitializeObjectAttributes 例程初始化此结构,但仅指定该例程的 InitializedAttributes属性 参数。 如果调用方未在系统线程上下文中运行,则必须在 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 本机系统服务例程的两个版本。

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

要求

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

另请参阅

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager

ZwQueryInformationEnlistment

ZwSetInformationEnlistment