Freigeben über


RpcCancelThread-Funktion (rpcdce.h)

Die RpcCancelThread-Funktion bricht einen Thread ab. Die RpcCancelThread-Funktion sollte nicht verwendet werden, um asynchrone RPC-Aufrufe abzubrechen. Verwenden Sie stattdessen die RpcAsyncCancelCall-Funktion , um einen asynchronen RPC-Aufruf abzubrechen.

Syntax

RPC_STATUS RpcCancelThread(
  void *Thread
);

Parameter

Thread

Handle des abzubrechenden Threads.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
RPC_S_ACCESS_DENIED
Threadhandle verfügt nicht über Berechtigungen. Threadhandles müssen THREAD_SET_CONTEXT ordnungsgemäß festgelegt haben, damit die Funktion ordnungsgemäß ausgeführt wird.
RPC_S_CANNOT_SUPPORT
Wird von einem MS-DOS- oder Windows 3.x-Client aufgerufen.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Die RpcCancelThread-Funktion ermöglicht es einem Clientthread, einen rpc-Vorgang auf einem anderen Clientthread abzubrechen. Wenn die Funktion aufgerufen wird, wird die Serverlaufzeit über den Abbruchvorgang informiert. Der Serverstub kann feststellen, ob der Aufruf abgebrochen wurde, indem RpcTestCancel aufgerufen wird. Wenn der Aufruf abgebrochen wurde, sollte der Serverstub sauber und die Steuerung an den Client zurückgeben.

Die RpcCancelThread-Funktion kann nicht verwendet werden, um einen Aufruf abzubrechen, der einen statischen Rückruf ausgegeben hat. Abbrechen Sie keine Remoteprozeduraufrufe, die möglicherweise eine Funktion aufrufen, die mit dem Attribut [callback] in der IDL-Datei deklariert wurde.

Standardmäßig wartet der Client ewig, bis der Server die Steuerung nach einem Abbruch zurückgibt. Um diese Zeit zu verkürzen, rufen Sie RpcMgmtSetCancelTimeout auf, und geben Sie die Anzahl der Sekunden an, die auf eine Antwort gewartet werden sollen. Wenn der Server innerhalb dieses Intervalls nicht zurückgegeben wird, schlägt der Aufruf auf dem Client mit einer RPC_S_CALL_FAILED Ausnahme fehl. Der Serverstub wird weiterhin ausgeführt.

Wenn Sie das Named Pipes-Protokoll verwenden, müssen Sie ncacn_np ein endliches Timeout angeben.

Sie können RpcCancelThread mit jedem der verbindungsorientierten Protokolle (ncacn_*) und mit jedem der Datagrammprotokolle mit Ausnahme von ncadg_mq und ncalrpc verwenden.

Hinweis Windows XP/2000 Die RpcCancelThread-Funktion ist für ncacn_http nicht verfügbar. Die RpcCancelThread-Funktion unterstützt ncacn_http unter Windows Server 2003 oder höher und Windows XP mit Service Pack 1 (SP1) und höher.

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 (include Rpc.h)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RpcTestCancel

ncacn_http

ncadg_mq

ncalrpc