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


Функция NtCancelIoFile

Отменяет все ожидающие операции ввода-вывода, которые выдаются вызывающим потоком для указанного файла. Функция не отменяет операции ввода-вывода, которые другие потоки выдают дескриптору файла.

Чтобы отменить операции ввода-вывода из другого потока, используйте функцию NtCancelIoFileEx .

Примечание

Эта функция является пользовательским режимом, эквивалентным функции CancelIo Win32.

Синтаксис

BOOL WINAPI NtCancelIoFile(
  _In_ HANDLE hFile
);

Параметры

hFile [in]

Дескриптор файла.

Функция отменяет все ожидающие операции ввода-вывода для этого дескриптора файла.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение. Операция отмены для всех ожидающих операций ввода-вывода, выданных вызывающим потоком для указанного дескриптора файла, успешно запрошена. Поток может использовать функцию GetOverlappedResult для определения завершения самих операций ввода-вывода.

Если функция завершается сбоем, возвращаемое значение равно нулю (0). Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError .

Комментарии

Если для указанного дескриптора файла выполняются какие-либо ожидающие операции ввода-вывода и они выдаются вызывающим потоком, функция NtCancelIoFile отменяет их. NtCancelIoFile отменяет только невыполненные операции ввода-вывода на дескрипторе, не изменяя состояние дескриптора; это означает, что нельзя полагаться на состояние дескриптора, так как вы не можете знать, была ли операция успешно завершена или отменена.

Операции ввода-вывода должны выдаваться как перекрывающиеся операции ввода-вывода. В противном случае операции ввода-вывода не возвращаются, чтобы разрешить потоку вызывать функцию NtCancelIoFile . Вызов функции NtCancelIoFile с дескриптором файла, который не открыт с помощью FILE_FLAG_OVERLAPPED , ничего не делает.

Все отмененные операции ввода-вывода завершаются с ошибкой ERROR_OPERATION_ABORTED, а все уведомления о завершении операций ввода-вывода выполняются обычным образом.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0
Да
Прозрачная отработка отказа (TFO) SMB 3.0
Да
SMB 3.0 с масштабируемыми общими папками (SO)
Да
Файловая система общего тома кластера (CSVFS)
Да
Восстанавливаемая файловая система (ReFS)
Да

Требования

Требование Значение
Заголовок
ntioapi.h
Библиотека
ntdll.lib

См. также раздел

CancelIoEx