Condividi tramite


Funzione RpcCancelThreadEx (rpcdce.h)

La funzione RpcCancelThreadEx arresta l'esecuzione di un thread. La funzione RpcCancelThreadEx non deve essere usata per arrestare l'esecuzione di una chiamata RPC asincrona; usare invece la funzione RpcAsyncCancelCall per arrestare l'esecuzione di una chiamata RPC asincrona.

Sintassi

RPC_STATUS RpcCancelThreadEx(
  void *Thread,
  long Timeout
);

Parametri

Thread

Handle del thread da annullare.

Timeout

Numero di secondi per attendere che il thread venga annullato prima che questa funzione venga restituita. Per specificare che un client attende un periodo di tempo indefinito, passare il valore RPC_C_CANCEL_INFINITE_TIMEOUT.

Valore restituito

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

Commenti

La funzione RpcCancelThreadEx consente a un thread client di annullare un rpc in corso in 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.

Usando il parametro Timeout , l'applicazione può specificare il numero di secondi per attendere una risposta. Se il server non restituisce entro questo intervallo, la chiamata ha esito negativo nel client con un'eccezione RPC_S_CALL_CANCELLED. Lo stub del server continua a essere eseguito.

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

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

Requisiti

Requisito Valore
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

RpcAsyncCancelCallRpcCancelThreadRpcTestCancelncacn_httpncacn_np ncadg_mqncalrpc