RpcBindingSetOption 関数 (rpcdce.h)

RpcBindingSetOption 関数を使用すると、クライアント アプリケーションでバインド ハンドルにメッセージ キュー オプションを指定できます。

構文

RPC_STATUS RpcBindingSetOption(
  RPC_BINDING_HANDLE hBinding,
  unsigned long      option,
  ULONG_PTR          optionValue
);

パラメーター

hBinding

変更するサーバー バインド。

option

変更するバインディング プロパティ。 バインド オプションとその使用可能な値の一覧については、「 バインド オプション定数」を参照してください。 RPC 呼び出しタイムアウト機能の詳細については、「解説」を参照してください。

optionValue

バインド プロパティの新しい値。 「解説」を参照してください。

戻り値

意味
RPC_S_OK
呼び出しは成功しました。
RPC_S_CANNOT_SUPPORT
この関数は、オペレーティング システムまたはトランスポートではサポートされていません。 ncacn_* 以外のプロトコル シーケンスを使用するバインド ハンドルで RpcBindingSetOption を呼び出すと失敗し、この値が返されることに注意してください。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

注釈

RPC クライアント プロセスでは 、RpcBindingSetOption を使用して、配信のサービス品質、呼び出しログ、および呼び出しの有効期間を制御します。 バインド ハンドルのプロパティを変更すると、 RpcBindingSetOption の別の呼び出しによってプロパティが変更されるまで、すべてのリモート呼び出しに影響します。 RpcBindingSetAuthInfo を呼び出して、バインド ハンドルのセキュリティ オプションを設定することもできます。

Windows XP: RPC 呼び出しタイムアウト機能:

Option を RPC_C_OPT_CALL_TIMEOUT に設定し、OptionValue をタイムアウト値 (ミリ秒単位) に設定して RpcBindingSetOption 関数を呼び出すと、開発者は RPC サーバーのタイムアウトを設定して、スレッドが応答しない RPC サーバーに捕らえられるのを防ぐことができます。 この機能により、開発者は応答しない RPC サーバーへの呼び出しを明示的にキャンセルできなくなります。 タイムアウトのタイマー監視は、各パケットの受信時に RPC クライアントによってリセットされます。 サーバーからパケットを受信せずにタイムアウトになった場合、RPC クライアントはRPC_S_CALL_CANCELLEDを返します。 クライアントが応答を破棄する場合でも、RPC サーバーは最終的に呼び出しを実行する可能性があることに注意してください。

無限タイムアウトの 場合は OptionValue を INFINITE または 0 に設定します。呼び出しの進行中は、このオプションを別のスレッドから変更しないでください。 取り消された呼び出しを再試行しないでください。これにより、既に応答していないサーバーの負荷が増加します。 RPC 呼び出しタイムアウト機能は、接続指向の同期 RPC 呼び出し ( ncacn_* プロトコル シーケンスで行われる呼び出しなど) にのみ役立ちます。 データグラム、非同期、またはローカル RPC 呼び出しの場合、RPC ランタイムではこのオプションは無視されます。

RPC 呼び出しタイムアウト機能は、ビジー状態の RPC サーバーが応答するのを待機するユーザー インターフェイスの更新 (ユーザーが砂時計を見たままにする) や、多くの RPC サーバーが要求を処理できる場合など、多くの状況で役立ちます。これにより、クライアントは応答しないサーバーをより迅速に特定してバイパスできます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー rpcdce.h (Rpc.h を含む)
Library Rpcrt4.lib
[DLL] Rpcrt4.dll

こちらもご覧ください

RPC メッセージ キュー

RpcBindingInqAuthClient

RpcBindingInqOption

RpcBindingSetAuthInfo

message