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 |
---|---|
|
La chiamata ha avuto esito positivo. |
|
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. |
|
Chiamato da un client MS-DOS o Windows 3.x. |
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 |