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

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

要求

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

另请参阅

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateResourceManager

ZwCreateTransactionManager

ZwOpenTransactionManager