RPC_ASYNC_STATE結構 (rpcasync.h)
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) |