RpcRevertToSelfEx 関数 (rpcdce.h)
RpcRevertToSelfEx 関数を使用すると、サーバーはクライアントを偽装してから、クライアントを偽装する呼び出しが、RPC から最初にディスパッチされたスレッド以外のスレッドから取得できるマルチスレッド操作で元に戻すことができます。
構文
RPC_STATUS RpcRevertToSelfEx(
RPC_BINDING_HANDLE BindingHandle
);
パラメーター
BindingHandle
サーバーが偽装したクライアントへのバインドを表すサーバー上のバインド ハンドル。 値 0 は、現在のスレッドのクライアント ハンドルを指定します。この場合、 RpcRevertToSelfEx の機能は 、RpcRevertToSelf 関数の機能と同じです。
戻り値
値 | 説明 |
---|---|
|
呼び出しは成功しました。 |
|
サーバーには、偽装するクライアントがありません。 |
|
バインド ハンドルが無効です。 |
|
これは、この操作のバインドの種類が間違っています。 |
|
この呼び出しは、このオペレーティング システム、このトランスポート、またはこのセキュリティ サブシステムではサポートされていません。 |
メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
解説
RpcImpersonateClient を呼び出し、クライアントの偽装を必要とするタスクを完了すると、サーバーは RpcRevertToSelfEx を呼び出して偽装を終了し、独自のセキュリティ ID を再確立します。 たとえば、スレッド 1 と呼ばれるプライマリ スレッドについて考えます。これはリモート クライアントからディスパッチされ、thread2 と呼ばれるワーカー スレッドをウェイクアップします。 thread2 でサーバーがクライアントを偽装する必要がある場合、サーバーは RpcImpersonateClient(THREAD1_CALL_HANDLE) を呼び出し、必要なタスクを実行し、 RpcRevertToSelfEx(THREAD1_CALL_HANDLE) を呼び出して偽装を終了し、thread1 をウェイクアップします。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpcdce.h (Rpc.h を含む) |
Library | Rpcrt4.lib |
[DLL] | Rpcrt4.dll |