文字列バインド

文字列バインディングは、バインディング オブジェクト UUID、RPC プロトコル シーケンス、ネットワーク アドレス、エンドポイントとエンドポイントのオプションを表す文字列で構成される符号なし文字列です。

ObjectUUID @*ProtocolSequence:*NetworkAddress [ エンドポイントオプション]

パラメーター

ObjectUUID

リモート プロシージャ呼び出しによって操作されるオブジェクトのUUID。 サーバーでは、RPC ランタイム ライブラリは、オブジェクトの種類をマネージャーのエントリ ポイント ベクター (関数ポインターの配列) にマップして、正しいマネージャー ルーチンを呼び出します。 オブジェクトの UID をマネージャーのエントリ ポイント ベクトルにマップする方法については、「インターフェイスの登録」 を参照してください

ProtocolSequence

RPC プロトコル (ncacn など)、トランスポート プロトコル (TCP など)、およびネットワーク プロトコル (IP など) の有効な組み合わせを表す文字列。 Microsoft RPC では、プロトコル シーケンス定数 で指定されている 次のプロトコルがサポートされています

NetworkAddress

リモート プロシージャ呼び出しを受信するシステムのネットワーク アドレス。

注意

XP では、次のプロトコル シーケンスはサポートWindowsされていません。

ネットワーク アドレスの形式と内容は、次のように指定されたプロトコル シーケンスによって異なります。

プロトコル シーケンス ネットワーク アドレス
ncacn _ nb _ tcp コンピューター名 Myserver
ncacn _ nb _ ipx コンピューター名 Myserver
ncacn _ nb _ nb コンピューター名 Myserver
ncacn _ ip _ tcp 4 オクテットのインターネット アドレス、またはホスト名。 IPv6 ネットワーク スタックがインストールされている場合、IPv6 は完全にサポートされ、IPv6 アドレスも受け入れされます。 128.10.2.30 anynode.microsoft.com
ncacn _ np サーバー名 (先頭の二重円記号は省略可能) myserver \ \ myotherserver
ncacn _ spx IPX インターネット アドレスまたはサーバー名 ~0000000108002B30612C myserver
ncacn _ dnet _ nsp 領域とノードの構文 4.120
ncacn _ at _ dsp コンピューター名。必要に応じて@ と AppleTalk ゾーン名が続きます。 既定では、 @ * に設定されます。ゾーンが指定されている場合は、クライアントのゾーン servername@zonename Servername
ncacn _ vns _ spp フォームの StreetTalk サーバー名 item@group@organization printserver@sdkdocs@microsoft
ncadg _ mq サーバー名 Myserver
ncacn _ http インターネット アドレス (4 オクテットまたは表示名、またはローカル サーバー名) 128.10.2.30 somesvr@anywhere.com mylocalsvr
ncadg _ ip _ udp 4 オクテットのインターネット アドレスまたはホスト名 128.10.2.30 anynode.microsoft.com
ncadg _ ipx IPX インターネット アドレスまたはサーバー名 ~0000000108002B30612C myserver
ncalrpc コンピューター名 thismachine

network-address フィールドは省略可能です。 ネットワーク アドレスを指定しない場合、文字列バインディングはローカル ホストを参照します。 ncalrpc プロトコル シーケンスを使用する場合、ローカル コンピューターの名前を指定することもできますが、これは完全に不要です。

エンドポイント

リモート プロシージャ呼び出しを受信するプロセスのエンドポイント (アドレス)。 エンドポイントの前には、キーワード endpoint= を指定できます。 サーバーがエンドポイント マッパーにバインドを登録している場合、エンドポイントの指定は省略可能です。 RpcEpRegister に関するページを参照してください

エンドポイントの形式と内容は、次の Endpoint/Option テーブルに示すように、指定されたプロトコル シーケンスによって異ないます。

オプション

プロトコル固有のオプション。 オプション フィールドは必要ありません。 各オプションは、構文オプション名オプションの値 を使用する {name, value} ペア = 指定されます。 オプションは、次の Endpoint/Option の表に示すように、プロトコル シーケンスごとに定義されます。

プロトコル シーケンス エンドポイント オプション名
ncacn _ nb _ tcp 1 ~ 254 の整数。 0 ~ 32 の多くの値は、Microsoft によって予約されています。 100 なし
ncacn _ nb _ ipx (上記のように) (上記のように) なし
ncacn _ nb _ nb (上記のように) (上記のように) なし
ncacn _ ip _ tcp インターネット ポート番号。 1025 なし
ncacn _ np 名前付きパイプ。 名前は "pipe" で始まる \ \ 必要があります。 \\pipe \ \ pipename セキュリティ
ncacn _ spx 1 から 65535 の整数。 5000 なし
ncacn _ dnet _ nsp DECnet フェーズ IV オブジェクト番号 (文字の前に指定する必要 # があります)、またはオブジェクト名。 mailserver # 17 なし
ncacn _ at _ dsp 最大 22 バイトの文字列。 myservicesendpoint なし
ncacn _ vns _ spp 250 から 511 の間の SPP ポート番号を示します。 500 なし
ncadg _ mq 1 から 65535 の整数。 5000 なし
ncacn _ http インターネット ポート番号。 2215 HTTP および RPC プロキシ サーバー名、HttpConnection オプション
ncadg _ ip _ udp インターネット ポート番号。 1025 なし
ncadg _ ipx 1 から 65535 の整数。 5000 なし
ncalrpc アプリケーションまたはサービス名を指定する文字列。 文字列に円記号を含めることはできません。 自分 _ のプリンター セキュリティ

ncacn http プロトコル シーケンスでサポートされている HttpConnectionOption オプション名は _ 、次の値を受け取います。

オプション名
HttpConnectOption UseHttpProxy

HttpConnectionOption を使用 すると、HTTP 接続を行う際に RPC の動作を指示できます。 UseHttpProxy 値は、クライアントが Internet Explorer で [ローカル アドレスのプロキシ サーバーをバイパスする] に設定されている場合など、HTTP プロキシ経由でトラフィックをルーティングするように RPC に指示します。 このオプションは、HTTP プロキシを介して RPC プロキシに強制的に接続するクライアントに指示します。 これにより、HTTP プロキシを使用する前に RPC サーバーの遅延検索がバイパスされるので、接続を確立する時間が速くなります。

この HttpConnectionOption オプション が使用され、クライアント上の Internet Explorer が Http プロキシを使用するように構成されていない場合、RPC S INVALID NETWORK OPTIONS で接続が失敗する _ _ _ 可能性 _ があります

HttpConnectOption=UseHttpProxy

HttpConnectionOption の詳細については、「HTTP を RPC トランスポートとして使用 する」を参照してください

ncalrpc、ncacn _ np、ncadg _ ip _ udp、および ncadg _ ipx プロトコル シーケンスでサポートされるセキュリティ オプション名は、次のオプション値を受け取る。

オプション名 オプション値
Security {id | anonymous | impersonation} {dynamic | static} { true | false}

セキュリティ オプション名を指定する場合は、各セキュリティ オプション値のセットから 1 つのエントリも指定する必要があります。 オプションの値は、1 つのスペース文字で区切る必要があります。 たとえば、次の オプション フィールド が有効です。

Security=identification dynamic true
Security=impersonation static true

セキュリティ オプションの値には、次の意味があります。

セキュリティ オプションの値 説明
匿名 クライアントはサーバーに対して匿名です。
動的 クライアント セキュリティ ID の変更は、サーバーがトランスポート セキュリティを使用するときにサーバーによって確認されます。 これは、LRPC (ncalrpc) トランスポート レベルのセキュリティと、ローカル名前付きパイプ (ncacn np) トランスポート レベルのセキュリティの既定 _ のモードです。
False Effective = FALSE;OFF に設定された設定を含むすべてのトークン特権設定は、サーバー上のトークンに含まれており、サーバーで有効にできます。 特権は、同じマシンの RPC 呼び出しにのみ関連します。
[識別] サーバーにはクライアントに関する情報がありますが、権限を借用することはできません。
偽装 サーバーは、ローカル システム内のクライアントに代わって動作できます (トランスポート レベルのセキュリティでは委任はサポートされません)。
静的 サーバーがトランスポート セキュリティを使用している場合、クライアント セキュリティ ID の変更はサーバーに表示されません。 これは、リモート名前付きパイプ (ncacn np) トランスポート レベルのセキュリティで使用 _ できる唯一のモードです。 呼び出し元の ID は、バインディング ハンドルが作成された時点ではなく、そのバインディング ハンドルに対する最初のリモート プロシージャ呼び出し中に保存されます。
True Effective = TRUE;サーバー上のトークンには、ON に設定されたトークン特権設定だけが含まれます。 このオプションを使用する場合、サーバーで OFF に設定された特権を有効にすることはできません。 特権は、同じマシンの RPC 呼び出しにのみ関連します。

セキュリティ オプションの詳細については、「セキュリティ」を 参照してください

解説

Option 構文で必要な場合を除き、文字列バインディングでは空白 を使用 できます。 NetworkAddress、Endpoint、 および Option フィールドの既定の設定は 、ProtocolSequence メンバーの値によって異なります。

すべての文字列バインディング フィールドでは、単一の円記号 ( \ ) がエスケープ文字として解釈されます。 1 つのリテラル円記号を指定するには、2 つの円記号 () を指定する必要があります \ \ 。

文字列バインディングには、バインディング ハンドルの文字表現と、場合によってはバインディング ハンドルの一部が含まれます。 文字列バインディングは、バインディング ハンドルの一部を表す場合に便利ですが、リモート プロシージャ呼び出しには使用できません。 まず 、RpcBindingFromStringBindingを呼び出して、バインド ハンドルに変換する必要があります。

さらに、文字列バインディングには、バインディング ハンドルのすべての情報が含まれているというのではありません。 たとえば、バインド ハンドルに関連付けられている認証情報がある場合 、RpcBindingToStringBindingを呼び出して返される文字列バインディングに変換されません。

分散アプリケーションの開発中、サーバーは、文字列バインドを使用してバインド情報をクライアントに通信し、エンドポイントマップデータベースや名前サービスデータベースを使用せずにクライアントとサーバー間の関係を確立できます。 このようなリレーションシップを確立するには、 Rpcbindingtostringbinding 関数を使用して、1つ以上のバインドハンドルをバインドハンドルベクターから文字列バインドに変換し、文字列バインドをクライアントに提供します。

有効な文字列バインドの例を次に示します。 これらの例では、便宜的に obj-uuid を使用して、文字列形式の有効な uuid を表現します。 UUID 308fb58008002b1075a7 を表示する代わりに、この例では、 obj-uuid を示しています。

obj-uuid@ncadg_mq:mymqserver
obj-uuid@ncacn_http:major7.microsoft.com[2225]
obj_uuid@ncacn_http:major7.microsoft.com[,HttpProxy=proxysvr:80,
    RpcProxy=websvr1.microsoft.com:80]
obj_uuid@ncacn_http:major7.microsoft.com[,HttpProxy=proxysvr:80,
    RpcProxy=websvr1.microsoft.com:80,HttpConnectOption=UseHttpProxy]
obj-uuid@ncacn_ip_tcp:16.20.16.27[2001]
obj-uuid@ncacn_ip_tcp:16.20.16.27[endpoint=2001]
obj-uuid@ncacn_nb_nb:
obj-uuid@ncacn_nb_nb:[100]
obj-uuid@ncacn_np:
obj-uuid@ncacn_np:[\\pipe\\p3,Security=impersonation static true]
obj-uuid@ncacn_np:\\\\marketing[\\pipe\\p2\\p3\\p4]
obj-uuid@ncacn_np:\\\\marketing[endpoint=\\pipe\\p2\\p3\\p4]
obj-uuid@ncacn_np:\\\\sales
obj-uuid@ncacn_np:\\\\sales[\\pipe\\p1,Security=identification dynamic true]
obj-uuid@ncalrpc:
obj-uuid@ncalrpc:[object1_name_demonstrating_that_these_can_be_lengthy]
obj-uuid@ncalrpc:[object2_name,Security=anonymous static true]
obj-uuid@ncacn_vns_spp:server@group@org[500]
obj-uuid@ncacn_dnet_nsp:took[elf_server]
obj-uuid@ncacn_dnet_nsp:took[endpoint=elf_server]
obj-uuid@ncadg_ip_udp:128.10.2.30
obj-uuid@ncadg_ip_udp:maryos.microsoft.com[1025]
obj-uuid@ncadg_ipx: ~0000000108002B30612C[5000]
obj-uuid@ncadg_ipx:printserver
obj-uuid@ncacn_spx:annaw[4390]
obj-uuid@ncacn_spx:~0000000108002B30612C

RpcBindingFromStringBinding

RpcBindingToStringBinding

RpcEpRegister

HTTP を RPC トランスポートとして使用する