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