다음을 통해 공유


RpcCancelThread 함수(rpcdce.h)

RpcCancelThread 함수는 스레드를 취소합니다. RpcCancelThread 함수는 비동기 RPC 호출을 취소하는 데 사용하면 안 됩니다. 대신 RpcAsyncCancelCall 함수를 사용하여 비동기 RPC 호출을 취소합니다.

구문

RPC_STATUS RpcCancelThread(
  void *Thread
);

매개 변수

Thread

취소할 스레드의 핸들입니다.

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
RPC_S_ACCESS_DENIED
스레드 핸들에는 권한이 없습니다. 스레드 핸들은 함수가 제대로 실행되려면 THREAD_SET_CONTEXT 올바르게 설정해야 합니다.
RPC_S_CANNOT_SUPPORT
MS-DOS 또는 Windows 3.x 클라이언트에서 호출됩니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값을 참조하세요.
 

설명

RpcCancelThread 함수를 사용하면 한 클라이언트 스레드가 다른 클라이언트 스레드에서 진행 중인 RPC를 취소할 수 있습니다. 함수가 호출되면 서버 런타임에 취소 작업을 알립니다. 서버 스텁은 RpcTestCancel을 호출하여 호출이 취소되었는지 확인할 수 있습니다. 호출이 취소된 경우 서버 스텁이 클린 클라이언트에 제어권을 반환해야 합니다.

RpcCancelThread 함수는 정적 콜백을 실행한 호출을 취소하는 데 사용할 수 없습니다. IDL 파일에서 [콜백] 특성으로 선언된 함수를 호출할 수 있는 원격 프로시저 호출을 취소하지 마세요.

기본적으로 클라이언트는 서버가 취소 후 컨트롤을 반환할 때까지 영원히 기다립니다. 이 시간을 줄이려면 RpcMgmtSetCancelTimeout을 호출하여 응답을 대기할 시간(초)을 지정합니다. 서버가 이 간격 내에 반환되지 않으면 RPC_S_CALL_FAILED 예외가 있는 클라이언트에서 호출이 실패합니다. 서버 스텁은 계속 실행됩니다.

명명된 파이프 프로토콜을 사용하는 경우 ncacn_np 제한 시간을 지정해야 합니다.

연결 지향 프로토콜(ncacn_*)과 ncadg_mqncalrpc를 제외한 모든 데이터그램 프로토콜에서 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

추가 정보

RpcTestCancel

ncacn_http

ncadg_mq

ncalrpc