Поделиться через


Функция 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

См. также

CancelIoEx

CancelSynchronousIo

CreateFile

DeviceIoControl

Функции управления файлами

LockFileEx

ReadDirectoryChangesW

ReadFile

ReadFileEx

Синхронные и асинхронные операции ввода-вывода

WriteFile

WriteFileEx