CancelIo 함수

지정된 파일에 대해 호출 스레드에서 발급한 보류 중인 모든 I/O(입력 및 출력) 작업을 취소합니다. 함수는 다른 스레드가 파일 핸들에 대해 발급하는 I/O 작업을 취소하지 않습니다.

다른 스레드에서 I/O 작업을 취소하려면 CancelIoEx 함수를 사용합니다.

구문

BOOL WINAPI CancelIo(
  _In_ HANDLE hFile
);

매개 변수

hFile [in]

파일에 대한 핸들입니다.

함수는 이 파일 핸들에 대해 보류 중인 모든 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 앱]
헤더
IoAPI.h(Windows.h 포함);
Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 WinBase.h(Windows.h 포함)
라이브러리
Kernel32.lib
DLL
Kernel32.dll

참고 항목

CancelIoEx

CancelSynchronousIo

CreateFile

DeviceIoControl

파일 관리 함수

LockFileEx

ReadDirectoryChangesW

ReadFile

ReadFileEx

동기 및 비동기 I/O

WriteFile

WriteFileEx