RPC_ASYNC_NOTIFICATION_INFO union (rpcasync.h)

RPC_ASYNC_NOTIFICATION_INFO联合包含异步远程过程调用的通知信息。 可以为 I/O 完成端口配置此通知信息, (IOC) 、Windows 异步过程调用 (APC) 、Windows 消息传送和 Windows 事件通知。

语法

typedef union _RPC_ASYNC_NOTIFICATION_INFO {
  struct {
    PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
    HANDLE                      hThread;
  } APC;
  struct {
    HANDLE       hIOPort;
    DWORD        dwNumberOfBytesTransferred;
    DWORD_PTR    dwCompletionKey;
    LPOVERLAPPED lpOverlapped;
  } IOC;
  struct {
    HWND hWnd;
    UINT Msg;
  } HWND;
  HANDLE                      hEvent;
  PKEVENT                     Event;
  PFN_RPCNOTIFICATION_ROUTINE NotificationRoutine;
} RPC_ASYNC_NOTIFICATION_INFO, *PRPC_ASYNC_NOTIFICATION_INFO;

成员

APC

用于 Windows 异步过程调用的结构 (APC) 通知。

APC.NotificationRoutine

调用用户定义的 APC 通知例程。

APC.hThread

应向其发布通知 APC 的线程的句柄。 值为零表示当前线程。

IOC

用于 I/O 完成端口上的通知的结构。

IOC.hIOPort

I/O 完成端口的句柄。

IOC.dwNumberOfBytesTransferred

在启动异步调用之前由 RPC 客户端设置。 当通知传递到完成端口时,此值将在 GetQueuedCompletionStatus 函数的 lpNumberOfBytesTransferred 参数指向的位置中填充。

IOC.dwCompletionKey

在启动异步调用之前由 RPC 客户端设置。 当通知传递到完成端口时,此值将在 GetQueuedCompletionStatus 函数的 lpCompletionKey 参数指向的位置填充。

IOC.lpOverlapped

在启动异步调用之前由 RPC 客户端设置。 当通知传递到完成端口时,此值将填充到 GetQueuedCompletionStatus 函数的 lpOverlapped 参数指向的位置。

HWND

Windows 消息用于通知的字段。 当 RPC 运行时发布消息时, wParam 为零, lParam 指向调用的异步句柄, (RPC_ASYNC_STATE) 。

Windows Server 2003 或更高版本: 已弃用通过 HWND 的通知。 请勿使用此成员。

HWND.hWnd

标识消息应发布到的窗口。

HWND.Msg

要发布的消息。

hEvent

事件用于通知的句柄。

Event

NotificationRoutine

Windows Vista 或早期版本的 Windows:COM 在内部将此用于直接回调。 请勿使用此成员。

Windows 7 或更高版本:一个可选函数指针,指向基于 RPC 调用完成生成的用户定义的通知方案。 例如,应用程序可以从通知回调调用 SubmitThreadpoolWork

注意 强烈建议不要通过通知回调进行其他 RPC 调用、阻止或执行长时间运行的工作。
 

注解

在 Windows Vista 和早期版本的 Windows 之前, RPC_ASYNC_NOTIFICATION_INFO 联合是 RPC_ASYNC_STATE 结构的一部分。 有关其他信息,请参阅 RPC_ASYNC_STATE 主题。

要求

   
最低受支持的客户端 具有 SP2 的 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
标头 rpcasync.h (包括 Rpc.h)

请参阅

RPC_ASYNC_STATE