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