다음을 통해 공유


WSACancelAsyncRequest 함수(winsock.h)

WSACancelAsyncRequest 함수는 불완전한 비동기 작업을 취소합니다.

구문

int WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

매개 변수

[in] hAsyncTaskHandle

취소할 비동기 작업을 지정하는 핸들입니다.

반환 값

작업이 성공적으로 취소된 경우 WSACancelAsyncRequest 에서 반환된 값은 0입니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 번호를 검색할 수 있습니다.

오류 코드 의미
WSANOTINITIALISED
이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다.
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEINVAL
지정된 비동기 작업 핸들이 잘못되었음을 나타냅니다.
WSAEINPROGRESS
차단 Windows Sockets 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다.
WSAEALREADY
취소되는 비동기 루틴이 이미 완료되었습니다.
 
참고 두 경우 모두 오류가 표시된 핸들을 사용하여 진행 중인 비동기 작업이 없음을 나타내기 때문에 애플리케이션이 WSAEINVALWSAEALREADY를 유용하게 구분할 수 있는지 여부는 불분명합니다. (사소한 예외: 0은 항상 잘못된 비동기 작업 핸들입니다.) Windows 소켓 사양은 호환되는 Windows 소켓 공급자가 두 사례를 구분하는 방법을 규정하지 않습니다. 최대 이식성을 위해 Windows 소켓 애플리케이션은 두 오류를 동등한 오류로 처리해야 합니다.
 

설명

WSACancelAsyncRequest 함수는 WSAAsyncGetHostByName과 같은 WSAAsyncGetXByY 함수 중 하나에서 시작된 비동기 작업을 취소하는 데 사용됩니다. 취소할 작업은 시작 WSAAsyncGetXByY 함수에서 반환된 대로 비동기 작업 핸들로 설정해야 하는 hAsyncTaskHandle 매개 변수로 식별됩니다.

두 가지 이유로 인해 WSAEALREADY 오류 코드로 인해 기존 비동기 WSAAsyncGetXByY 작업을 취소 하려고 하면 실패할 수 있습니다. 먼저 원래 작업이 이미 완료되었으며 애플리케이션에서 결과 메시지를 처리했습니다. 둘째, 원래 작업이 이미 완료되었지만 결과 메시지가 애플리케이션 창 큐에서 계속 대기 중입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winsock.h(Winsock2.h 포함)
라이브러리 Ws2_32.lib
DLL Ws2_32.dll

추가 정보

WSAAsyncGetHostByAddr

WSAAsyncGetHostByName

WSAAsyncGetProtoByName

WSAAsyncGetProtoByNumber

WSAAsyncGetServByName

WSAAsyncGetServByPort

Winsock 함수

Winsock 참조