RpcCancelThread 함수(rpcdce.h)
RpcCancelThread 함수는 스레드를 취소합니다. RpcCancelThread 함수는 비동기 RPC 호출을 취소하는 데 사용하면 안 됩니다. 대신 RpcAsyncCancelCall 함수를 사용하여 비동기 RPC 호출을 취소합니다.
구문
RPC_STATUS RpcCancelThread(
void *Thread
);
매개 변수
Thread
취소할 스레드의 핸들입니다.
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
|
스레드 핸들에는 권한이 없습니다. 스레드 핸들은 함수가 제대로 실행되려면 THREAD_SET_CONTEXT 올바르게 설정해야 합니다. |
|
MS-DOS 또는 Windows 3.x 클라이언트에서 호출됩니다. |
설명
RpcCancelThread 함수를 사용하면 한 클라이언트 스레드가 다른 클라이언트 스레드에서 진행 중인 RPC를 취소할 수 있습니다. 함수가 호출되면 서버 런타임에 취소 작업을 알립니다. 서버 스텁은 RpcTestCancel을 호출하여 호출이 취소되었는지 확인할 수 있습니다. 호출이 취소된 경우 서버 스텁이 클린 클라이언트에 제어권을 반환해야 합니다.
RpcCancelThread 함수는 정적 콜백을 실행한 호출을 취소하는 데 사용할 수 없습니다. IDL 파일에서 [콜백] 특성으로 선언된 함수를 호출할 수 있는 원격 프로시저 호출을 취소하지 마세요.
기본적으로 클라이언트는 서버가 취소 후 컨트롤을 반환할 때까지 영원히 기다립니다. 이 시간을 줄이려면 RpcMgmtSetCancelTimeout을 호출하여 응답을 대기할 시간(초)을 지정합니다. 서버가 이 간격 내에 반환되지 않으면 RPC_S_CALL_FAILED 예외가 있는 클라이언트에서 호출이 실패합니다. 서버 스텁은 계속 실행됩니다.
명명된 파이프 프로토콜을 사용하는 경우 ncacn_np 제한 시간을 지정해야 합니다.
연결 지향 프로토콜(ncacn_*)과 ncadg_mq 및 ncalrpc를 제외한 모든 데이터그램 프로토콜에서 RpcCancelThread를 사용할 수 있습니다.
참고 Windows XP/2000 RpcCancelThread 함수는 ncacn_http 사용할 수 없습니다. RpcCancelThread 함수는 Windows Server 2003 이상 운영 체제 및 Windows XP SP1(서비스 팩 1) 이상에서 ncacn_http 지원합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | rpcdce.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |