GetNotificationResourceManagerAsync 函数 (ktmw32.h)

请求并接收资源管理器 (RM) 的异步通知。 RM 寄存器使用此函数在事务更改状态时接收通知。

语法

BOOL GetNotificationResourceManagerAsync(
  [in]  HANDLE                    ResourceManagerHandle,
  [out] PTRANSACTION_NOTIFICATION TransactionNotification,
  [in]  ULONG                     TransactionNotificationLength,
  [out] PULONG                    ReturnLength,
  [in]  LPOVERLAPPED              lpOverlapped
);

parameters

[in] ResourceManagerHandle

资源管理器的句柄。

[out] TransactionNotification

指向接收第一个可用通知 的 TRANSACTION_NOTIFICATION 结构的指针。

[in] TransactionNotificationLength

TransactionNotification 缓冲区的大小(以字节为单位)。

[out] ReturnLength

指向变量的指针,该变量接收 TransactionNotification 参数接收的通知的实际大小。

[in] lpOverlapped

指向异步操作所需的 OVERLAPPED 结构的指针。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零 (0)。 若要获得更多的错误信息,请调用 GetLastError 函数。

以下列表标识了可能的错误代码:

注解

所有资源管理器都必须注册才能接收 TRANSACTION_NOTIFY_PREPREPARETRANSACTION_NOTIFY_PREPARETRANSACTION_NOTIFY_COMMIT 通知,即使他们随后调用 ReadOnlyEnlistment 将登记标记为只读。 资源管理器可以支持 TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT,但他们还必须支持多阶段预准备、准备和提交通知。 有关资源管理器可以接收的所有通知的列表,请参阅 TRANSACTION_NOTIFICATION

(RM) 资源管理器可能希望多次调用此函数,以便 KTM 在传递通知时使用多个缓冲区。 对此函数的调用次数取决于 RM 所承载的负载量。

必须在调用 SetResourceManagerCompletionPort 函数后调用此函数。

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 ktmw32.h
Library KtmW32.lib
DLL KtmW32.dll

另请参阅

CreateEnlistment

内核事务管理器函数

NOTIFICATION_MASK

SetResourceManagerCompletionPort

TRANSACTION_NOTIFICATION

TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT