WSACancelAsyncRequest 함수(winsock2.h)
WSACancelAsyncRequest 함수는 불완전한 비동기 작업을 취소합니다.
구문
int WSAAPI WSACancelAsyncRequest(
[in] HANDLE hAsyncTaskHandle
);
매개 변수
[in] hAsyncTaskHandle
취소할 비동기 작업을 지정하는 핸들입니다.
반환 값
작업이 성공적으로 취소된 경우 WSACancelAsyncRequest 에서 반환된 값은 0입니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 번호를 검색할 수 있습니다.
오류 코드 | 의미 |
---|---|
이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다. | |
네트워크 하위 시스템이 실패했습니다. | |
지정된 비동기 작업 핸들이 잘못되었음을 나타냅니다. | |
차단 Windows Sockets 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다. | |
취소되는 비동기 루틴이 이미 완료되었습니다. |
참고 두 경우 모두 오류가 표시된 핸들을 사용하여 진행 중인 비동기 작업이 없음을 나타내기 때문에 애플리케이션이 WSAEINVAL 과 WSAEALREADY를 유용하게 구분할 수 있는지 여부는 불분명합니다. (사소한 예외: 0은 항상 잘못된 비동기 작업 핸들입니다.) Windows 소켓 사양은 호환되는 Windows 소켓 공급자가 두 사례를 구분하는 방법을 규정하지 않습니다. 최대 이식성을 위해 Windows 소켓 애플리케이션은 두 오류를 동등한 오류로 처리해야 합니다.
설명
WSACancelAsyncRequest 함수는 WSAAsyncGetHostByName과 같은 WSAAsyncGetXByY 함수 중 하나에서 시작된 비동기 작업을 취소하는 데 사용됩니다. 취소할 작업은 시작 WSAAsyncGetXByY 함수에서 반환된 대로 비동기 작업 핸들로 설정해야 하는 hAsyncTaskHandle 매개 변수로 식별됩니다.
두 가지 이유로 인해 WSAEALREADY 오류 코드로 인해 기존 비동기 WSAAsyncGetXByY 작업을 취소 하려고 하면 실패할 수 있습니다. 먼저 원래 작업이 이미 완료되었으며 애플리케이션에서 결과 메시지를 처리했습니다. 둘째, 원래 작업이 이미 완료되었지만 결과 메시지가 애플리케이션 창 큐에서 계속 대기 중입니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winsock2.h(Winsock2.h 포함) |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |