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
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 [デスクトップ アプリのみ] |
Header | rpcasync.h (Rpc.h を含む) |