非同期呼び出しの因果順序付け
非同期 RPC アプリケーションでは、そのハンドルに対する以前の呼び出しが完了する前に、クライアント スレッドがバインディング ハンドルで 2 回目の非同期呼び出しを行うことができます。 RPC ランタイム ライブラリは、この状況を次のように処理します。
- 非同期 RPC メカニズムを使用すると、同じバインディング ハンドルに対して同じセキュリティ レベルで非同期呼び出しが行われた順序でディスパッチされます。 呼び出しの実際の実行が順序外で発生する可能性があります。
- 同期呼び出しと同様に、異なるクライアント スレッドからの非同期リモート プロシージャ呼び出しが同時に実行されます。
- クライアント アプリケーションからの非同期呼び出しの後に 1 つ以上の同期呼び出しが続く場合、同期呼び出しの実行中に非同期呼び出しを実行できます。 非同期呼び出しの状態に関係なく、同期呼び出しはサーバーが受信した順序で実行されます。
- クライアント アプリケーションが特定のバインド ハンドルに対して非順序付けを選択すると、そのハンドルのシリアル化が無効になります。 アプリケーションでは、Option パラメーターを RPC_C_OPT_BINDING_NONCAUSAL に設定し、OptionValue パラメーターを TRUE に設定して RpcBindingSetOption を呼び出すことで、非順序付けを有効にします。 詳細については、「 バインド オプション定数」を参照してください。