RpcServerListen 関数 (rpcdce.h)
RpcServerListen 関数は、リモート プロシージャ 呼び出しをリッスンするように RPC ランタイム ライブラリに通知します。 この関数は、自動リッスン インターフェイスには影響しません。その機能が必要な場合は、 RpcServerRegisterIfEx を使用します。
構文
RPC_STATUS RpcServerListen(
unsigned int MinimumCallThreads,
unsigned int MaxCalls,
unsigned int DontWait
);
パラメーター
MinimumCallThreads
指定されたサーバーで作成および保守する必要がある呼び出しスレッドの最小数を指定する RPC ランタイムのヒント。 この値はヒントに過ぎません。Windows のバージョンによって解釈が異なります。 Windows XP では、この値は、RPC ランタイムによって作成される各スレッド プールで以前に作成されたスレッドの数です。 アプリケーションでは、このパラメーターに 1 つを指定し、スレッド作成の決定を RPC ランタイムに延期する必要があります。
MaxCalls
サーバーが実行できる同時リモート プロシージャ呼び出しの最大数を推奨します。 効率的なパフォーマンスを実現するために、RPC ランタイム ライブラリは MaxCalls パラメーターを絶対上限としてではなく、推奨される制限として解釈します。
既定値を指定するには、RPC_C_LISTEN_MAX_CALLS_DEFAULTを使用します。
DontWait
RpcServerListen からの戻り値を制御するフラグ。 0 以外の値は、関数の処理が完了した直後に RpcServerListen が返されることを示します。 値 0 は、RpcMgmtStopServerListening 関数が呼び出され、すべてのリモート呼び出しが完了するまで、RpcServerListen が返されないことを示します。
戻り値
値 | 意味 |
---|---|
|
呼び出しは成功しました。 |
|
サーバーは既にリッスンしています。 |
|
プロトコル シーケンスは登録されていません。 |
|
呼び出しの最大値が小さすぎます。 |
注釈
サーバーがリモート プロシージャ 呼び出しを処理する準備ができたら、サーバーは RpcServerListen を呼び出します。 RPC を使用すると、サーバーは複数の呼び出しを同時に処理できます。 MaxCalls パラメーターは、サーバーが実行する同時リモート プロシージャ呼び出しの最大数を推奨します。
MaxCalls 値は 0 ではなく、MinimumCallThreads より大きくする必要があります。 0x7FFFFFFFより大きい値は、予告なしに0x7FFFFFFFに設定されます。
Windows XP/2000: MaxCalls パラメーターを RPC_C_LISTEN_MAX_CALLS_DEFAULT に設定すると、定数定義値 1234 に設定されるのではなく、同時リモート プロシージャ呼び出しの制限が解除されます。 同時呼び出しの最大数の制限を削除すると、コンピューターで処理できる数の同時リモート プロシージャ 呼び出しが可能になります。 この動作により、RPC ランタイムの効率が向上します。
各ルーチンは個別のスレッドで実行されるため、サーバー アプリケーションはサーバー マネージャー ルーチン間のコンカレンシー制御を担当します。
DontWait パラメーターの値が 0 の場合、RPC ランタイム ライブラリは、次のいずれかのイベントが発生するまでリモート プロシージャ 呼び出しをリッスンし続けます (つまり、ルーチンはサーバー アプリケーションに戻りません)。
- サーバー アプリケーションのマネージャー ルーチンの 1 つは 、RpcMgmtStopServerListening を呼び出します。
- クライアントは、 RpcMgmtStopServerListening を呼び出すようにサーバーに指示するサーバーによって提供されるリモート プロシージャを呼び出します。
- クライアントは、サーバーへのバインド ハンドルを使用して RpcMgmtStopServerListening を呼び出します。
DontWait パラメーターの値が 0 以外の場合、RpcServerListen は関数に関連付けられているすべての命令を処理した直後にサーバーに戻ります。 RpcMgmtWaitServerListen 関数を使用して、通常は RpcServerListen に関連付けられている待機操作を実行できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcdce.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |