RpcServerInqCallAttributesW 関数 (rpcasync.h)
RpcServerInqCallAttributes 関数は、クライアント セキュリティ コンテキスト属性を取得する RPC サーバー呼び出しです。
構文
RPC_STATUS RpcServerInqCallAttributesW(
[in] RPC_BINDING_HANDLE ClientBinding,
[in, out] void *RpcCallAttributes
);
パラメーター
[in] ClientBinding
任意。 サーバー ルーチン内の明示的なバインドの場合、 ClientBinding は、マネージャー ルーチンが呼び出されたバインド ハンドルです。 「解説」を参照してください。
[in, out] RpcCallAttributes
呼び出し属性を受け取る構造体をRPC_CALL_ATTRIBUTES_V2します。
戻り値
成功したRPC_S_OKを返し、 RpcCallAttributes が入力されます。 ERROR_MORE_DATAが返された場合、 RpcCallAttributes の 1 つ以上のフィールドの長さが不十分で、入力できませんでした。 ERROR_MORE_DATAの処理の詳細については、「 RPC_CALL_ATTRIBUTES_V2 の解説」を参照してください。
失敗した場合、 RpcCallAttributes の内容は未定義であり、RPC によって部分的に変更される可能性があります。
解説
RpcServerInqCallAttributes 関数は、サフィックス識別子を持つ新しい関数を導入することなく、バージョン管理スキームを使用して新しい機能を組み込みます。 たとえば、ヘッダー内の単純な #define で識別される 2 番目のバージョンの RPC_CALL_ATTRIBUTES_V2では、 RpcServerInqCallAttributesEx という関数を解放することなく、RpcServerInqCallAttributes 関数の将来のバージョンに組み込まれている新機能を容易にするために、新しいメンバーを追加できます。
RpcServerInqCallAttributes 関数がサーバー ルーチンの外部で呼び出され、関数呼び出しが非同期 RPC 呼び出しのセキュリティ コンテキスト属性を照会する場合は、非同期ハンドルから RpcAsyncGetCallHandle 関数を呼び出すことによって ClientBinding を取得できます。
RpcServerInqCallAttributes 関数は、ncadg_* などのデータグラム プロトコル シーケンスではサポートされていません。 データグラム プロトコル シーケンスで実行される呼び出しで呼び出された場合は、RPC_S_CANNOT_SUPPORTが返されます。
RpcServerInqCallAttributes 関数はスレッド セーフです。
例
RPC_CALL_ATTRIBUTES CallAttributes; // this maps to RPC_CALL_ATTRIBUTES_V1
memset(&CallAttributes, 0, sizeof(CallAttributes));
CallAttributes.Version = RPC_CALL_ATTRIBUTES_VERSION; // maps to 1
CallAttributes.Flags = ;//....
Status = RpcServerInqCallAttributes(0, &ClientContextAttributes);
Note
rpcasync.h ヘッダーは、RPCServerInqCallAttributes をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | rpcasync.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |