Функция CancelIo (ioapiset.h)
Отменяет все ожидающие операции ввода-вывода, которые выдаются вызывающим потоком для указанного файла. Функция не отменяет операции ввода-вывода, которые другие потоки выдают дескриптору файла.
Чтобы отменить операции ввода-вывода из другого потока, используйте функцию CancelIoEx .
Синтаксис
BOOL CancelIo(
[in] HANDLE hFile
);
Параметры
[in] hFile
Дескриптор файла.
Функция отменяет все ожидающие операции ввода-вывода для этого дескриптора файла.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение. Операция отмены для всех ожидающих операций ввода-вывода, выданных вызывающим потоком для указанного дескриптора файла, успешно запрошена. Поток может использовать функцию GetOverlappedResult для определения завершения самих операций ввода-вывода.
Если функция завершается сбоем, возвращаемое значение равно нулю (0). Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError .
Комментарии
Если для указанного дескриптора файла выполняются какие-либо ожидающие операции ввода-вывода и они выдаются вызывающим потоком, функция CancelIo отменяет их. CancelIo отменяет только невыполненные операции ввода-вывода на дескрипторе, не изменяя состояние дескриптора; это означает, что нельзя полагаться на состояние дескриптора, так как вы не можете знать, была ли операция успешно завершена или отменена.
Операции ввода-вывода должны выдаваться как перекрывающиеся операции ввода-вывода. В противном случае операции ввода-вывода не возвращаются, чтобы разрешить потоку вызывать функцию CancelIo . Вызов функции CancelIo с дескриптором файла, который не открыт с помощью FILE_FLAG_OVERLAPPED , ничего не делает.
Все отмененные операции ввода-вывода завершаются с ошибкой ERROR_OPERATION_ABORTED, а все уведомления о завершении операций ввода-вывода выполняются обычным образом.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Да |
Прозрачная отработка отказа (TFO) SMB 3.0 | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ioapiset.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |