RpcRevertToSelfEx-Funktion (rpcdce.h)
Mit der RpcRevertToSelfEx-Funktion kann ein Server die Identität eines Clients annehmen und dann in einem Multithreadvorgang rückgängig machen, bei dem der Aufruf zum Annehmen der Identität eines Clients von einem anderen Thread als dem thread stammen kann, der ursprünglich vom RPC bereitgestellt wurde.
Syntax
RPC_STATUS RpcRevertToSelfEx(
RPC_BINDING_HANDLE BindingHandle
);
Parameter
BindingHandle
Bindungshandle auf dem Server, das eine Bindung an den Client darstellt, den der Server imitiert hat. Der Wert 0 (null) gibt das Clienthandle des aktuellen Threads an. In diesem Fall ist die Funktionalität von RpcRevertToSelfEx identisch mit der Funktion RpcRevertToSelf .
Rückgabewert
Wert | Bedeutung |
---|---|
|
Der Aufruf war erfolgreich. |
|
Der Server verfügt nicht über einen Client, der die Identität annehmen kann. |
|
Das Bindungshandle ist ungültig. |
|
Dies ist die falsche Art der Bindung für diesen Vorgang. |
|
Der Aufruf wird für dieses Betriebssystem, diesen Transport oder dieses Sicherheitssubsystem nicht unterstützt. |
Hinweise
Nachdem RpcImpersonateClient aufgerufen und alle Aufgaben abgeschlossen wurden, die einen Clientidentitätswechsel erfordern, ruft der Server RpcRevertToSelfEx auf, um den Identitätswechsel zu beenden und seine eigene Sicherheitsidentität wiederherzustellen. Betrachten Sie beispielsweise einen primären Thread namens thread1, der von einem Remoteclient verteilt wird und einen Workerthread mit dem Namen thread2 reaktiviert. Wenn thread2 erfordert, dass der Server die Identität des Clients annimmt, ruft der Server RpcImpersonateClient(THREAD1_CALL_HANDLE) auf, führt die erforderliche Aufgabe aus, ruft RpcRevertToSelfEx(THREAD1_CALL_HANDLE) auf, um den Identitätswechsel zu beenden, und reaktiviert dann thread1.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | rpcdce.h (rpc.h einschließen) |
Bibliothek | Rpcrt4.lib |
DLL | Rpcrt4.dll |