Condividi tramite


Funzione RpcCancelThread (rpcdce.h)

La funzione RpcCancelThread annulla un thread. La funzione RpcCancelThread non deve essere utilizzata per annullare le chiamate RPC asincrone; Usare invece la funzione RpcAsyncCancelCall per annullare una chiamata RPC asincrona.

Sintassi

RPC_STATUS RpcCancelThread(
  void *Thread
);

Parametri

Thread

Handle del thread da annullare.

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_ACCESS_DENIED
L'handle di thread non dispone dei privilegi. Gli handle di thread devono avere THREAD_SET_CONTEXT impostato correttamente affinché la funzione venga eseguita correttamente.
RPC_S_CANNOT_SUPPORT
Chiamato da un client MS-DOS o Windows 3.x.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

La funzione RpcCancelThread consente a un thread client di annullare un RPC in corso su un altro thread client. Quando viene chiamata la funzione , il runtime del server viene informato dell'operazione di annullamento. Lo stub del server può determinare se la chiamata è stata annullata chiamando RpcTestCancel. Se la chiamata è stata annullata, lo stub del server deve pulire e restituire il controllo al client.

La funzione RpcCancelThread non può essere utilizzata per annullare una chiamata che ha emesso un callback statico. Non annullare le chiamate di routine remota che possono chiamare una funzione dichiarata con l'attributo [callback] nel file IDL.

Per impostazione predefinita, il client attende per sempre che il server restituisca il controllo dopo un annullamento. Per ridurre questo tempo, chiamare RpcMgmtSetCancelTimeout, specificando il numero di secondi di attesa di una risposta. Se il server non restituisce entro questo intervallo, la chiamata ha esito negativo nel client con un'eccezione RPC_S_CALL_FAILED . Lo stub del server continua a essere eseguito.

Se si usa il protocollo named pipe, ncacn_np, è necessario specificare un timeout finito.

È possibile usare RpcCancelThread con uno qualsiasi dei protocolli orientati alla connessione (ncacn_*) e con uno qualsiasi dei protocolli del datagram, ad eccezione di ncadg_mq e ncalrpc.

Nota Windows XP/2000 La funzione RpcCancelThread non è disponibile per ncacn_http. La funzione RpcCancelThread supporta ncacn_http nei sistemi operativi Windows Server 2003 o versioni successive e Windows XP con Service Pack 1 (SP1) e versioni successive.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione rpcdce.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

RpcTestCancel

ncacn_http

ncadg_mq

ncalrpc