バインド オプション定数
アプリケーションでは、RPC ランタイム ライブラリがリモート プロシージャ コールを処理する方法を制御するバインド オプション定数を設定します。 次の表に、各バインド プロパティと、バインド プロパティに関連する定数値を示します。
Note
次の表のすべてのメッセージ・キュー・オプション (MQ) は、Windows 2000 でのみ有効です。 Windows XP 以降のバージョンでは、メッセージ キューはサポートされていません。 開発者はメッセージ キューを使用しないことをお勧めします。
定数/値 | 説明 |
---|---|
|
既定値。
FALSE の場合、因果関係の呼び出し順序。 RPC 呼び出しは、送信の厳密な順序で実行されます。 「解説」を参照してください。 TRUE の場合、非causal 呼び出しの順序付け。 RPC 呼び出しは個別に実行されます。 「解説」を参照してください。 |
|
アプリケーション プログラムには必要ありません。 Microsoft によって内部的に使用されます。 |
|
アプリケーション プログラムには必要ありません。 Microsoft によって内部的に使用されます。 |
|
TRUE の場合、接続ごとにセッション ID が生成されます。 |
|
TRUE の場合、クライアント側の Cookie ベースの認証が接続に使用されます。
RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR構造体へのポインターは、RpcBindingSetOption の OptionValue パラメーターとして渡されます。 |
|
アプリケーション プログラムには必要ありません。 Microsoft によって内部的に使用されます。 |
|
TRUE の場合は、関連付けの最後のバインド ハンドル/コンテキスト ハンドルが解放された後に強制的にシャットダウンします。 |
|
true に設定すると、RPC は既存の接続を再利用しません。 接続ごとに一意のバインド ハンドルが開き、一意のバインド ハンドルごとに状態が維持されます。 |
解説
既定では、RPC ランタイム ライブラリは、アプリケーションの各スレッドからの特定のバインド ハンドルに対する呼び出しを、送信の厳密な順序で実行します。 これは、同じバインド ハンドル上の異なるスレッドからの呼び出しがシリアル化されることを保証するものではありません。 マルチスレッド アプリケーションでは、RPC 呼び出しをシリアル化する必要があります。 この動作が制限が厳しすぎる場合は、非順序付けを有効にすることができます。 この場合、RPC ランタイム ライブラリは個別に呼び出しを実行します。 送信に順序が適用されません。
非順序付けが役立つアプリケーションの例の 1 つは、スレッドが同じバインド ハンドルで呼び出しを行うマルチスレッド プログラムです。 同様に、バインド ハンドルに対して複数の非同期呼び出しを使用するプログラムでは、便利なオプションの順序付け以外の順序が見つかります。 もう 1 つの例として、1 つのスレッドを使用して複数のクライアントの要求を処理するインターネット プロキシ プログラムがあります。 いずれの場合も、リモート プロシージャ 呼び出しをシリアル化しようとするのは非常に制限が厳しい場合があります。
RPC_C_OPT_DONT_LINGER オプションは、ncalrpc または ncacn_* プロトコル シーケンスを使用するバインド ハンドルでのみ設定できます。 ncadg_* プロトコル シーケンスでは使用できません。 このオプション を使用する RpcBindingSetOption 関数は、少なくとも 1 つの RPC 呼び出しが行われたバインディング ハンドルで呼び出す必要があります。 バインド ハンドルで RPC 呼び出しが行われなかった場合、 RPC_S_WRONG_KIND_OF_BINDING は RpcBindingSetOption 関数呼び出しから返されます。 このオプションは、関連付けにアタッチされているバインド ハンドルの数に関係なく、関連付け全体に対して有効になります。 関連付けが破棄される前にチェックされるため、バインド ハンドルが閉じられる前にいつでも設定できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|