RpcBindingServerFromClient 関数 (rpcdce.h)

アプリケーションは RpcBindingServerFromClient を 呼び出して、クライアント バインド ハンドルを部分的にバインドされたサーバー バインド ハンドルに変換します。

構文

RPC_STATUS RpcBindingServerFromClient(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_BINDING_HANDLE *ServerBinding
);

パラメーター

ClientBinding

サーバー バインド ハンドルに変換するクライアント バインド ハンドル。 値 0 を指定すると、サーバーは、このサーバー スレッドによって処理されるクライアントを偽装します。

メモ Windows NT 4.0 では、このパラメーターを NULL にすることはできません。
 

ServerBinding

サーバー バインド ハンドルを返します。

戻り値

説明
RPC_S_OK
呼び出しは成功しました。
RPC_S_INVALID_BINDING
バインド ハンドルが無効です。
RPC_S_WRONG_KIND_OF_BINDING
これは、操作のバインドの種類が間違っていました。
RPC_S_CANNOT_SUPPORT
クライアントのホストを特定できません。 サポートされているプロトコル シーケンスの一覧については、「解説」を参照してください。
 
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

次のプロトコル シーケンスでは、 RpcBindingServerFromClient がサポートされています。

アプリケーションは、RPC ランタイムからクライアント バインド ハンドルを取得します。 リモート プロシージャ コールがサーバーに到着すると、ランタイムは、呼び出し元のクライアントに関する情報を含むクライアント バインド ハンドルを作成します。 ランタイムは、このハンドルを最初の引数としてサーバー マネージャー関数に渡します。

RpcBindingServerFromClient を呼び出すと、このクライアント ハンドルが、次のプロパティを持つサーバー ハンドルに変換されます。

  • サーバー ハンドルは、部分的にバインドされたハンドルです。 呼び出し元クライアントのネットワーク アドレスが含まれていますが、エンドポイントがありません。
  • サーバー ハンドルには、呼び出し元のクライアントで使用されるのと同じオブジェクト UUID が 含まれています。 これは nil UUID です。 クライアントが呼び出しのオブジェクト UUID を指定する方法の詳細については、「 RpcBindingsetObjectRpcNsBindingImportBeginRpcNsBindingLookupBeginおよび RpcBindingFromStringBinding」を参照してください。
  • サーバー ハンドルに認証情報が含まれない。
サーバー アプリケーションは RpcBindingFree を 呼び出して、不要になったサーバー バインド ハンドルで使用されるリソースを解放する必要があります。
メモ クライアントのアドレスに対してクエリを実行するために、アプリケーションはまず RpcBindingServerFromClient 関数を呼び出して、部分的にバインドされたサーバー バインド ハンドルを取得します。 サーバー バインド ハンドルを使用して、RpcBindingToStringBinding を呼び出して文字列バインディングを取得できます。 その後、サーバーは RpcStringBindingParse を呼び出して、文字列バインディングからクライアントのネットワーク アドレスを抽出できます。
 

要件

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

関連項目

RpcBindingFree

RpcBindingFromStringBinding

RpcBindingSetObject

RpcEpRegister

RpcEpRegisterNoReplace

RpcNsBindingImportBegin

RpcNsBindingLookupBegin