CancelIo 함수(ioapiset.h)
지정된 파일에 대해 호출 스레드에서 발급한 보류 중인 모든 I/O(입력 및 출력) 작업을 취소합니다. 함수는 다른 스레드가 파일 핸들에 대해 발급하는 I/O 작업을 취소하지 않습니다.
다른 스레드에서 I/O 작업을 취소하려면 CancelIoEx 함수를 사용합니다.
구문
BOOL CancelIo(
[in] HANDLE hFile
);
매개 변수
[in] hFile
파일에 대한 핸들입니다.
함수는 이 파일 핸들에 대해 보류 중인 모든 I/O 작업을 취소합니다.
반환 값
함수가 성공하면 반환 값이 0이 아닙니다. 지정된 파일에 대해 호출 스레드에서 발급한 보류 중인 모든 I/O 작업이 성공적으로 요청되었습니다. 스레드는 GetOverlappedResult 함수를 사용하여 I/O 작업 자체가 완료된 시기를 확인할 수 있습니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError 함수를 호출합니다.
설명
지정된 파일 핸들에 대해 진행 중인 보류 중인 I/O 작업이 있고, 호출 스레드에서 실행된 경우 CancelIo 함수는 이를 취소합니다. CancelIo는 핸들의 미해결 I/O만 취소하고, 핸들의 상태는 변경하지 않습니다. 즉, 작업이 성공적으로 완료 또는 취소되었는지 알 수 없으므로 핸들의 상태에 의존할 수 없습니다.
I/O 작업은 중첩된 I/O로 실행되어야 합니다. 그렇지 않은 경우 I/O 작업은 CancelIo 함수 호출을 허용하는 스레드를 반환하지 않습니다. FILE_FLAG_OVERLAPPED이 열려 있지 않은 파일 핸들을 사용하여 CancelIo 함수를 호출해도 아무 작업도 실시되지 않습니다.
취소된 모든 I/O 작업은 오류 ERROR_OPERATION_ABORTED를 포함하여 완료되며, I/O 작업에 대한 모든 완료 알림은 정상적으로 발생합니다.
Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | Yes |
SMB 3.0 TFO(투명 장애 조치(failover)) | Yes |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | Yes |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | Yes |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | ioapiset.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |