(rpcasync.h) RPC_ASYNC_STATE 结构

RPC_ASYNC_STATE 结构保留异步远程过程调用的状态。 RPC_ASYNC_STATE 是此结构的句柄,用于等待、查询、回复或取消异步调用。

语法

typedef struct _RPC_ASYNC_STATE {
  unsigned int                Size;
  unsigned long               Signature;
  long                        Lock;
  unsigned long               Flags;
  void                        *StubInfo;
  void                        *UserInfo;
  void                        *RuntimeInfo;
  RPC_ASYNC_EVENT             Event;
  RPC_NOTIFICATION_TYPES      NotificationType;
  RPC_ASYNC_NOTIFICATION_INFO u;
  LONG_PTR                    Reserved[4];
} RPC_ASYNC_STATE, *PRPC_ASYNC_STATE;

成员

Size

此结构的大小(以字节为单位)。 调用 RpcAsyncInitializeHandle 时,环境会设置此成员。 请勿修改此成员。

Signature

调用 RpcAsyncInitializeHandle 时,运行时环境会设置此成员。 请勿修改此成员。

Lock

调用 RpcAsyncInitializeHandle 时,运行时环境会设置此成员。 请勿修改此成员。

Flags

标志成员可以设置为以下值。

返回的常量 含义
RPC_C_NOTIFY_ON_SEND_COMPLETE
异步操作完成时发布通知消息。
 

这些标志与 DCE 管道一起使用,这些管道允许应用程序在多个块中发送或接收数据。 程序可以发送连续数据流,也可以等待每个块传输,然后再发送下一个块。 如果不等待,RPC 运行时库将缓冲输出,直到可以发送。 数据传输完成后,RPC 库会向应用程序发送通知。 如果应用程序指定RPC_C_NOTIFY_ON_SEND_COMPLETE标志,则 RPC 库在完成每个发送操作后向其发送 RPC_NOTIFICATION_TYPES 枚举的成员。

StubInfo

保留供存根使用。 请勿使用此成员。

UserInfo

将此成员用于要在此结构中跟踪的任何特定于应用程序的信息。

RuntimeInfo

保留供 RPC 运行时环境使用。 请勿使用此成员。

Event

发生的事件的类型。 RPC 运行时环境将此字段设置为 RPC_ASYNC_EVENT 枚举的成员。

NotificationType

RPC 运行时应用于通知客户端发生事件的通知类型,例如完成调用或完成事件。

含义
RpcNotificationTypeNone
未指定通知; RPC_ASYNC_NOTIFICATION_INFO 未初始化。
RpcNotificationTypeEvent
通知机制是 Windows 事件。
RpcNotificationTypeApc
通知机制是 Windows 异步过程调用。
RpcNotificationTypeIoc
通知机制是 I/O 完成端口。
RpcNotificationTypeHwnd
通知机制是 Windows 系统消息。

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

RpcNotificationTypeCallback
通知机制是函数回调。

u

包含为 NotificationType 中指定的机制类型设置格式的异步通知信息。

注意 在 Windows Vista 之前,此成员包含当前由 RPC_ASYNC_NOTIFICATION_INFO 联合指定的联合的特定语法。
 

Reserved[4]

保留是为了与将来的版本(如果有)的兼容性。 请勿使用此成员。

注解

客户端为 RPC_ASYNC_STATE 结构和关联的句柄分配空间,并调用 RpcAsyncInitializeHandle 来初始化结构。 在运行时环境成功初始化结构后,客户端将初始化 NotificationType,以及 RPC_ASYNC_NOTIFICATION_INFO 联合中的以下结构之一:用于 Windows 异步过程调用的 APC 、I/O 完成端口的 IOC 、Windows 系统消息的 HWND 或 Windows 事件的 hEvent 。 如果所选通知方法是 RpcNotificationTypeNone,则不需要初始化联合的字段。 RPC 客户端也可以根据需要初始化 UserInfo 字段。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 rpcasync.h (包括 Rpc.h)

另请参阅

异步 RPC

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel