RpcServerUseAllProtseqs 関数 (rpcdce.h)

RpcServerUseAllProtseqs 関数は、リモート プロシージャ 呼び出しを受信するためにサポートされているすべてのプロトコル シーケンスを使用するように RPC ランタイム ライブラリに指示します。

構文

RPC_STATUS RpcServerUseAllProtseqs(
  unsigned int MaxCalls,
  void         *SecurityDescriptor
);

パラメーター

MaxCalls

ncacn_ip_tcp プロトコル シーケンスのバックログ キューの長さ。 他のすべてのプロトコル シーケンスでは、このパラメーターは無視されます。 既定値を指定するには、RPC_C_PROTSEQ_MAX_REQS_DEFAULTを使用します。 「解説」を参照してください。

SecurityDescriptor

セキュリティ サブシステムに指定された省略可能なパラメーターへのポインター。 ncacn_npおよび ncalrpc プロトコル シーケンスにのみ使用されます。 他のすべてのプロトコル シーケンスでは、このパラメーターは無視されます。 サーバーをセキュリティで保護するために、エンドポイントでセキュリティ記述子を使用することはお勧めしません。 このパラメーターは、この API の DCE 仕様には表示されません。

戻り値

説明
RPC_S_OK
呼び出しは成功しました。
RPC_S_NO_PROTSEQS
サポートされているプロトコル シーケンスはありません。
RPC_S_OUT_OF_MEMORY
十分なメモリが使用できません。
RPC_S_INVALID_SECURITY_DESC
セキュリティ記述子が無効です。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

メモ サポートされているすべてのプロトコル シーケンスをリッスンすることは推奨されません。これは、サーバーが非メインストリーム プロトコル シーケンスを含むすべてのプロトコル シーケンスでリッスンするためです。 サーバーはメイン ストリーム プロトコル シーケンスでのみリッスンすることをお勧めします。
 
サーバー アプリケーションは RpcServerUseAllProtseqs を呼び出して、サポートされているすべてのプロトコル シーケンスを RPC ランタイム ライブラリに登録します。 リモート プロシージャ コールを受信するには、サーバーが少なくとも 1 つのプロトコル シーケンスを RPC ランタイム ライブラリに登録する必要があります。 Microsoft RPC でサポートされるプロトコル シーケンスの一覧については、参照トピック 「文字列バインディング」を参照してください。

サーバーによって登録されたプロトコル シーケンスごとに、RPC ランタイム ライブラリは、サーバーがリモート プロシージャ コール要求を受信する 1 つ以上のエンドポイントを作成します。 RPC ランタイム ライブラリは、プロトコル シーケンスごとに異なるエンドポイントを作成します。 エンドポイント名は、RPC ランタイムまたはオペレーティング システムによって生成されます。 たとえば、 ncacn_ip_tcpの場合、ポート番号は、可用性とレジストリの設定に応じて、RPC ランタイムによって動的に決定されます。

メモRpcServerUseAllProtseqs 関数を使用しても、サーバーは次のプロトコル シーケンスをリッスンしません。
 
メモ これらのプロトコル シーケンスのいずれかをリッスンするには、各シーケンスを個別に選択する必要があります。
 
MaxCalls の場合、アプリケーションによって提供される値はヒントにすぎません。 RPC ランタイムまたは Windows ソケット プロバイダーによって値がオーバーライドされる場合があります。 たとえば、Windows XP または Windows 2000 Professional では、値は 5 に制限されます。 5 より大きい値は無視され、代わりに 5 が使用されます。 Windows Server 2003 および Windows 2000 Server では、値が受け入れられます。

アプリケーションは 、MaxCalls で適切な値を渡すように注意する必要があります。 Server、Advanced Server、または Datacenter Server の値が大きいと、大量の非ページ プール メモリが使用される可能性があります。 値が小さすぎると、バックログ キューが使い果たされた場合にサーバーから TCP RST によって TCP SYN パケットが満たされる可能性があるため、この値を使用しても好ましくない場合があります。 アプリケーション開発者は、 MaxCalls の適切な値を決定するときに、メモリ占有領域とスケーラビリティ要件のバランスを取る必要があります。

コンピューターが選択的バインディングを使用するように構成されている場合、正常な戻り値は、サーバーがコンピューター上に存在するすべてのネットワーク インターフェイスのエンドポイントを作成したことを保証しません。 RPC ランタイムは、選択的バインディング設定によっては、一部のネットワーク インターフェイスでリッスンしない場合があります。 さらに、インターフェイスがまだ DHCP を使用して IP アドレスを受信していない場合、RPC サーバーは DHCP アドレスが割り当てられるまでネットワーク インターフェイスでリッスンしません。 正常な戻り値は、サーバーが少なくとも 1 つのネットワーク インターフェイスでリッスンしていることを意味します。 RpcServerInqBindings 関数の呼び出しを使用して、リモート プロシージャ呼び出しを受信できるバインド ハンドルの完全な一覧を取得できます。

詳細については、「 サーバー側のバインド」を参照してください。 プロトコル シーケンスを選択的に登録するために、サーバーは RpcServerUseProtseqRpcServerUseProtseqIf、または RpcServerUseProtseqEp を呼び出します。

要件

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

関連項目

RpcBindingToStringBinding

RpcBindingVectorFree

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingExport

RpcServerInqBindings

RpcServerListen

RpcServerRegisterIf

RpcServerUseAllProtseqsIf

RpcServerUseProtseq

RpcServerUseProtseqEp

RpcServerUseProtseqIf

セキュリティで保護された RPC クライアントまたはサーバーの作成