RpcMgmtSetComTimeout 関数 (rpcdce.h)

RpcMgmtSetComTimeout 関数は、バインド ハンドルのバインディング通信タイムアウト値を設定します。

構文

RPC_STATUS RpcMgmtSetComTimeout(
  RPC_BINDING_HANDLE Binding,
  unsigned int       Timeout
);

パラメーター

Binding

タイムアウト値が設定されているサーバー バインド ハンドル。

Timeout

0 から 10 までの通信タイムアウト値。 これらの値は秒ではありません。これらは、0 から 10 のスケールで相対的な時間を表します。

戻り値

説明
RPC_S_OK
呼び出しは成功しました。
RPC_S_INVALID_BINDING
バインド ハンドルが無効でした。
RPC_S_INVALID_TIMEOUT
タイムアウト値が無効です。
RPC_S_WRONG_KIND_OF_BINDING
これは、操作の間違った種類のバインドでした。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

Windows XP および Windows 2000 では、バインド中に RPC ランタイムは、15 分の呼び出しタイムアウトの短い方を使用し、 RpcMgmtSetComTimeout 関数を使用して設定されたタイムアウトを使用します。 バインドに続く交換では、RPC ランタイムは RpcMgmtSetComTimeout 関数を使用する際に設定されたタイムアウトのみを使用します。 このオプションは、 ncalrpc および ncadg_* プロトコル シーケンスでは無視されます。

クライアント アプリケーションは RpcMgmtSetComTimeout を呼び出して、サーバー バインド ハンドルの通信タイムアウト値を変更します。 指定されたバインディング ハンドルのプロトコル シーケンスに応じて、タイムアウト値は RPC ランタイム ライブラリのヒントとしてのみ機能します。 各プロトコル シーケンスは、この設定を異なる方法で解釈します。 ncacn_ip_tcpの場合、値はすべての呼び出しでキープアライブを有効にするために使用されます。 たとえば、 ncacn_ip_tcp場合、タイムアウト を 0 に設定すると、応答が 60 秒で受信されない場合にキープアライブを有効にするように RPC に指示されます (60 秒の間隔は実装固有であり、変更される可能性があります)。 この状況では、クライアント呼び出しは、サーバーが実行されている限りタイムアウトしません。ただし、サーバーが失敗した場合、または IP アドレスが失われると、RPC は呼び出しに失敗します。 TCP タイムアウト ヒントは、接続の確立中、および要求/応答交換中に使用されます。

メモ 失敗したサーバーを検出するためのベスト プラクティスは、TCP タイムアウト ヒントの使用です。

Windows XP では、サーバーが応答すると、特定の接続のキープアライブがオフになります。

 
便宜上、タイムアウト範囲内の特定の値に対して定数が提供されます。 アプリケーションがタイムアウト引数に使用できる RPC 定義値の一覧については、「 バインディング タイムアウト定数」を参照してください。

要件

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

関連項目

RpcMgmtInqComTimeout