다음을 통해 공유


WinAPPCCancelAsyncRequest

WinAPPCCancelAsyncRequest 함수는 미해결 WinAsyncAPPC 기반 요청을 취소합니다.

구문

  
    int WINAPI WinAPPCCancelAsyncRequest(   
HANDLE hAsyncTaskID);  

매개 변수

hAsyncTaskID
제공된 매개 변수입니다. 취소할 비동기 작업을 지정합니다.

반환 값

반환 값은 비동기 요청이 취소되었는지 여부를 지정합니다. 값이 0이면 요청이 취소되었습니다. 그렇지 않으면 값은 다음 중 하나입니다.

WAPPCINVALID
지정된 비동기 작업 식별자가 잘못되었음을 나타내는 오류 코드입니다.

WAPPCALREADY
취소되는 비동기 루틴이 이미 완료되었음을 나타내는 오류 코드입니다.

설명

이전에 WinAsyncAPPC, WinAsyncAPPCEx 또는 WinAsyncAPPCIOCP 함수 중 하나를 실행하여 시작한 비동기 작업은 완료 전에 WinAPPCCancelAsyncRequest 함수를 발급하고 hAsyncTaskID의 초기 함수에서 반환된 비동기 작업 식별자를 지정하여 취소할 수 있습니다.

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

WAPPCALREADY 오류 코드로 인해 기존 비동기 WinAsyncAPPC 루틴을 취소하려는 시도가 실패하면 두 가지 중 하나가 발생했습니다. 원래 루틴이 이미 완료되었고 애플리케이션이 결과 메시지를 처리했거나 원래 루틴이 이미 완료되었으며 결과 메시지가 애플리케이션 창 큐에서 계속 대기 중입니다.