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 メンバーは、次の値に設定できます。

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

こちらもご覧ください

非同期 RPC

RpcAsyncAbortCall

RpcAsyncCancelCall

RpcAsyncCompleteCall

RpcAsyncGetCallHandle

RpcAsyncGetCallStatus

RpcAsyncInitializeHandle

RpcServerTestCancel