(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
标志成员可以设置为以下值。
返回的常量 | 含义 |
---|---|
|
异步操作完成时发布通知消息。 |
这些标志与 DCE 管道一起使用,这些管道允许应用程序在多个块中发送或接收数据。 程序可以发送连续数据流,也可以等待每个块传输,然后再发送下一个块。 如果不等待,RPC 运行时库将缓冲输出,直到可以发送。 数据传输完成后,RPC 库会向应用程序发送通知。 如果应用程序指定RPC_C_NOTIFY_ON_SEND_COMPLETE标志,则 RPC 库在完成每个发送操作后向其发送 RPC_NOTIFICATION_TYPES 枚举的成员。
StubInfo
保留供存根使用。 请勿使用此成员。
UserInfo
将此成员用于要在此结构中跟踪的任何特定于应用程序的信息。
RuntimeInfo
保留供 RPC 运行时环境使用。 请勿使用此成员。
Event
发生的事件的类型。 RPC 运行时环境将此字段设置为 RPC_ASYNC_EVENT 枚举的成员。
NotificationType
RPC 运行时应用于通知客户端发生事件的通知类型,例如完成调用或完成事件。
值 | 含义 |
---|---|
|
未指定通知; RPC_ASYNC_NOTIFICATION_INFO 未初始化。 |
|
通知机制是 Windows 事件。 |
|
通知机制是 Windows 异步过程调用。 |
|
通知机制是 I/O 完成端口。 |
|
通知机制是 Windows 系统消息。
Windows Server 2003 或更高版本: 已弃用通过 HWND 的通知。 请勿使用此值。 |
|
通知机制是函数回调。 |
u
包含为 NotificationType 中指定的机制类型设置格式的异步通知信息。
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) |