RPC_POLICY 構造体 (rpcdce.h)

RPC_POLICY構造体には、マルチホーム コンピューターでのバインドを決定するフラグと、ncacn_ip_tcpプロトコルとncadg_ip_udp プロトコルを使用する場合のポート割り当てが含まれます。

構文

typedef struct _RPC_POLICY {
  unsigned int  Length;
  unsigned long EndpointFlags;
  unsigned long NICFlags;
} RPC_POLICY, *PRPC_POLICY;

メンバー

Length

RPC_POLICY構造体のサイズ (バイト単位)。 Length メンバーを使用すると、追加のフィールドを含む可能性がある、この構造体の将来のバージョンとの互換性を確保できます。 コードでRPC_POLICY構造体を初期化するときは、常に Lengthsizeof( RPC_POLICY ) に設定します。

EndpointFlags

サーバーがリモート プロシージャ コールを受信するポートまたはポートの属性を決定するフラグのセット。 特定のプロトコル シーケンスの値のセットから複数のフラグを (ビットごとの OR 演算子を使用して) 指定できます。 次の表に、 EndpointFlags メンバーに指定できる値を示します。

意味
0
システムの既定値を指定します。
RPC_C_USE_INTERNET_PORT
レジストリで定義されているポートの 1 つからエンドポイントを "インターネットで使用可能" として割り当てます。 ncacn_ip_tcpおよびncadg_ip_udpプロトコル シーケンスでのみ有効です。
RPC_C_USE_INTRANET_PORT
レジストリで定義されているポートの 1 つからエンドポイントを "イントラネットで使用可能" として割り当てます。 ncacn_ip_tcpおよびncadg_ip_udpプロトコル シーケンスでのみ有効です。
RPC_C_MQ_TEMPORARY
サーバー プロセス受信キューは、RPC サーバーが終了すると自動的に削除されます。 キュー内の未処理の呼び出しは失われます。 既定値です。 ncadg_mq プロトコル シーケンスでのみ有効です。
RPC_C_MQ_PERMANENT
サーバー プロセスが終了した後も、サーバー プロセス受信キューが保持されることを指定します。 既定では、サーバー プロセスが終了するとキューが削除されます。 ncadg_mqプロトコル シーケンスでのみ有効です。
RPC_C_MQ_CLEAR_ON_OPEN
受信キューが以前に永続的なキューとして開かれたために既に存在する場合は、キューで待機している未処理の呼び出しをすべてクリアします。 ncadg_mq プロトコル シーケンスでのみ有効です。
RPC_C_MQ_USE_EXISTING_SECURITY
受信キューが既に存在する場合は、認証または暗号化の既存の設定を変更しないでください。 ncadg_mq プロトコル シーケンスでのみ有効です。
RPC_C_MQ_AUTHENTICATE
サーバー プロセス受信キューは、クライアントからの認証された呼び出しのみを受け入れます。 既定では、認証された呼び出しと認証されていない呼び出しの両方が受け入れられます。 ncadg_mqプロトコル シーケンスでのみ有効です。
RPC_C_MQ_ENCRYPT
サーバーへの呼び出しは暗号化されます。 既定では、暗号化された呼び出しと暗号化されていない呼び出しの両方が受け入れられます。 ncadg_mqプロトコル シーケンスでのみ有効です。
RPC_C_MQ_AUTHN_LEVEL_NONE
サーバーの受信キューは、クライアントからのすべての呼び出しを受け入れます。 これが既定の認証レベルです。 ncadg_mq プロトコルでのみ有効です。
RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY
認証レベルがRPC_C_AUTHN_LEVEL_PKT_INTEGRITYまたはRPC_C_AUTHN_LEVEL_PKT_PRIVACYクライアント呼び出しのみを受け入れるように、サーバーの受信キューを設定します。 ncadg_mq プロトコル シーケンスでのみ有効です。
RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY
認証レベルがRPC_C_AUTHN_LEVEL_PKT_PRIVACYクライアント呼び出しのみを受け入れるように、サーバーの受信キューを設定します。 認証レベルが低い呼び出しは無視されます。 ncadg_mq プロトコル シーケンスでのみ有効です。
 
 
メモ レジストリに既定のポリシーを指定するキーが含まれていない場合、 EndpointFlags メンバーは実行時に無効になります。 キーがない場合、または無効な値が含まれている場合、そのプロトコル ( ncacn_ip_tcpncadg_ip_udp 、または ncadg_mq) の構成全体が無効としてマークされ、そのプロトコルに対するすべての RpcServerUseProtseq* 関数の呼び出しは失敗します。
 

NICFlags

ネットワーク インターフェイス カード (NIC) にバインドするためのポリシー。 次の表に、 NICFlags メンバーに指定できる値を示します。

意味
0
レジストリ設定に基づいて NIC にバインドします。 RPC_POLICY構造体を使用してメッセージ キューのプロパティを定義する場合は、常にこの値を使用します。
RPC_C_BIND_TO_ALL_NICS
レジストリ設定をオーバーライドし、すべての NIC にバインドします。 Bind キーがレジストリに存在しない場合、 NICFlags メンバーは実行時に無効になります。 キーに無効な値が含まれている場合、構成全体が無効としてマークされ、 RpcServerUseProtseq* へのすべての呼び出しが失敗します。

注釈

RPC_Policy構造体を使用して、実行時にリモート プロシージャ 呼び出しのポリシーを設定できます。 次のようなポリシーがあります。

  • メッセージ キュー: サーバーは、セキュリティ、配信の品質、サーバー プロセス キューの有効期間など、メッセージ キューのプロパティを指定できます。 このポリシーは、メッセージ キュー トランスポート (ncadg_mq) 経由のリモート呼び出しにのみ有効です。
  • 動的ポートのポート割り当て: このアプリケーションによって登録されたエンドポイントを、インターネットで使用可能なポート セットとイントラネットで使用可能なポート セットのどちらに移動するかを指定します。
  • 選択的バインド: マルチホーム マシンが NIC に選択的にバインドできるようにします。
メモ ポート割り当てと選択的バインディング ポリシーは、TCP ( ncacn_ip_tcp) および UDP ( ncadg_ip_udp) 接続経由のリモート呼び出しにのみ有効です。 詳細については、「 ポート割り当てと選択的バインディング用のレジストリの構成」を参照してください。
 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header rpcdce.h (Rpc.h を含む)

こちらもご覧ください

ポート割り当てと選択的バインディング用のレジストリの構成

RPC メッセージ キュー

RpcServerUseAllProtseqsEx

RpcServerUseAllProtseqsIfEx

RpcServerUseProtseqEpEx

RpcServerUseProtseqEx

RpcServerUseProtseqIfEx