RpcRevertToSelfEx  FUC2Q3

After calling RpcImpersonateClient and completing any tasks that require client impersonation, the server calls RpcRevertToSelfEx to end impersonation and to reestablish its own security identity.

This function is supported only by Windows NT.

#include <rpc.h>

RPC_STATUS RPC_ENTRY RpcRevertToSelf Ex(

    RPC_BINDING_HANDLE  CallHandle 

 

   );

 

 

Parameters

CallHandle

Specifies a binding handle on the server that represents a binding to the client that the server impersonated. A value of zero specifies the client handle of the current thread; in this case the functionality of RpcRevertToSelfEx is identical to that of RpcRevertToSelf3_K7J9P.

 

Return Values

Value

Meaning

RPC_S_OK

Success.

RPC_S_NO_CALL_ACTIVE

Server does not have a client to impersonate.

RPC_S_INVALID_BINDING

Invalid binding handle.

RPC_S_WRONG_KIND_OF_BINDING

Wrong kind of binding for operation.

RPC_S_CANNOT_SUPPORT

Not supported for this operating system, this transport, or this security subsystem.

 

Remarks

RpcRevertToSelfEx allows a server to impersonate a client and then revert in a multithreaded operation where the call to impersonate a client can come from a thread other than the thread originally dispatched from the RPC. For example, consider a primary thread, called thread1, which is dispatched from a remote client and which wakes up a worker thread, called thread2. If thread2 requires that the server impersonate the client, the server calls RpcImpersonateClient(THREAD1_CALL_HANDLE), performs the required task, calls RpcRevertToSelfEx(THREAD1_CALL_HANDLE) to end the impersonation, and then wakes up thread1.

See Also

RpcImpersonateClient, RpcRevertToSelf, Impersonation