NtOpenResourceManager 函数 (wdm.h)

ZwOpenResourceManager 例程返回现有 资源管理器对象的句柄。

语法

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             ResourceManagerGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);

参数

[out] ResourceManagerHandle

指向调用方分配的变量的指针,如果调用 ZwOpenResourceManager 成功,则接收资源管理器句柄。

[in] DesiredAccess

一个 ACCESS_MASK 值,该值指定调用方对资源管理器对象的请求访问权限。 有关如何指定此参数的详细信息,请参阅 ZwCreateResourceManagerDesiredAccess 参数。 此参数不能为零。

[in] TmHandle

事务管理器对象的句柄,前一次调用 ZwCreateTransactionManagerZwOpenTransactionManager

[in] ResourceManagerGuid

指向标识要打开的资源管理器的 GUID 的指针。

[in, optional] ObjectAttributes

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

返回值

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

返回代码 描述
STATUS_OBJECT_TYPE_MISMATCH
TmHandle 指定的句柄不是事务对象的句柄。
STATUS_INVALID_HANDLE
TmHandle 指定的句柄无效。
STATUS_ACCESS_DENIED
调用方无权访问指定的事务管理器对象。
STATUS_INVALID_PARAMETER
DesiredAccess 参数为零,或者 resourceManagerGuid 参数 无效。
STATUS_RESOURCEMANAGER_NOT_FOUND
找不到指定的资源管理器。
STATUS_TRANSACTIONMANAGER_NOT_ONLINE
指定的事务管理器不联机。
 

例程可能会 返回其他NTSTATUS 值。

言论

通常,TPS 组件从以前调用 ZwCreateResourceManager的另一个 TPS 组件收到登记 GUID 后,ZwOpenResourceManager 调用。 大多数 TPS 设计不需要调用 ZwOpenResourceManager

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

有关 ZwOpenResourceManager的详细信息,请参阅 KTM 对象

NtOpenResourceManagerZwOpenResourceManager 是同一 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

另请参阅

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateResourceManager

ZwCreateTransactionManager

ZwOpenTransactionManager