다음을 통해 공유


WinAPPCCancelBlockingCall

WinAPPCCancelBlockingCall 함수는 스레드에 대한 미해결 차단 작업을 취소합니다. 미해결 차단된 호출이 취소되면 WAPPCCANCEL의 오류 코드가 생성됩니다.

구문

  
BOOL WINAPI WinAPPCCancelBlockingCall(  
void  
);  
  

Return Value

반환 값은 취소 요청이 성공했는지 여부를 지정합니다. 값이 0이면 요청이 취소되었습니다. 그렇지 않으면 값은 다음과 같습니다.

WAPPCINVALID
미해결 차단 호출이 없음을 나타내는 오류 코드입니다.

설명

미해결 동사가 대화와 관련된 경우(예: SEND_DATA 또는 RECEIVE_AND_WAIT) 동사가 제거되고 세션이 닫힙니다. 동사가 TP(예: RECEIVE_ALLOCATE 또는 TP_STARTED)와 관련된 경우 TP는 종료됩니다. 두 경우 모두 구현에서 대화 및 세션을 최대한 깔끔하게 중단하는 동안 송신 버퍼를 플러시하지 않고 확인을 기다리는 등의 작업을 수행합니다. 이 호출은 동기적이며 위에서 설명한 처리가 완료되면 함수가 완료됩니다.

Microsoft Windows에서 다중 스레드 애플리케이션에는 여러 차단 작업이 미해결되지만 스레드당 하나만 있을 수 있습니다. 여러 미해결 호출을 구분하기 위해 WinAPPCCancelBlockingCall 은 현재 또는 호출 중인 애플리케이션 스레드(있는 경우)에 대한 미해결 작업을 취소합니다. 그렇지 않으면 실패합니다. 기본적으로 Windows에서 Windows APPC는 작업이 미해결인 동안 호출 애플리케이션 스레드를 일시 중단합니다. 따라서 차단 작업이 시작된 스레드는 WinAPPCSetBlockingHook를 사용하여 스레드에 대해 차단 후크를 등록하지 않는 한 제어권을 다시 얻지 못하므로 WinAPPCCancelBlockingCall에 대한 호출을 실행할 수 없습니다.