RpcBindingServerFromClient 関数 (rpcdce.h)
アプリケーションは RpcBindingServerFromClient を 呼び出して、クライアント バインド ハンドルを部分的にバインドされたサーバー バインド ハンドルに変換します。
構文
RPC_STATUS RpcBindingServerFromClient(
RPC_BINDING_HANDLE ClientBinding,
RPC_BINDING_HANDLE *ServerBinding
);
パラメーター
ClientBinding
サーバー バインド ハンドルに変換するクライアント バインド ハンドル。 値 0 を指定すると、サーバーは、このサーバー スレッドによって処理されるクライアントを偽装します。
メモ Windows NT 4.0 では、このパラメーターを NULL にすることはできません。
ServerBinding
サーバー バインド ハンドルを返します。
戻り値
値 | 説明 |
---|---|
|
呼び出しは成功しました。 |
|
バインド ハンドルが無効です。 |
|
これは、操作のバインドの種類が間違っていました。 |
|
クライアントのホストを特定できません。 サポートされているプロトコル シーケンスの一覧については、「解説」を参照してください。 |
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
解説
次のプロトコル シーケンスでは、 RpcBindingServerFromClient がサポートされています。
- ncadg_ip_udp
- ncadg_ipx
- ncacn_ip_tcp
- ncacn_spx。
- ncacn_np (Windows 2000 で有効)
- ncacn_http
- ncalrpc
RpcBindingServerFromClient を呼び出すと、このクライアント ハンドルが、次のプロパティを持つサーバー ハンドルに変換されます。
- サーバー ハンドルは、部分的にバインドされたハンドルです。 呼び出し元クライアントのネットワーク アドレスが含まれていますが、エンドポイントがありません。
- サーバー ハンドルには、呼び出し元のクライアントで使用されるのと同じオブジェクト UUID が 含まれています。 これは nil UUID です。 クライアントが呼び出しのオブジェクト UUID を指定する方法の詳細については、「 RpcBindingsetObject、 RpcNsBindingImportBegin、 RpcNsBindingLookupBegin、 および RpcBindingFromStringBinding」を参照してください。
- サーバー ハンドルに認証情報が含まれない。
メモ クライアントのアドレスに対してクエリを実行するために、アプリケーションはまず RpcBindingServerFromClient 関数を呼び出して、部分的にバインドされたサーバー バインド ハンドルを取得します。 サーバー バインド ハンドルを使用して、RpcBindingToStringBinding を呼び出して文字列バインディングを取得できます。 その後、サーバーは RpcStringBindingParse を呼び出して、文字列バインディングからクライアントのネットワーク アドレスを抽出できます。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcdce.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |