Функция CancelIoEx


Отмечает любые ожидающие выполнения операции ввода/вывода (I/O) для заданного дескриптора файла. Функция только отменяет операции ввода/вывода (I/O) в текущем процессе, независимо от того, какой поток создал операцию ввода/вывода.

Синтаксис

BOOL WINAPI CancelIoEx(
  __in      HANDLE hFile,
  __in_opt  LPOVERLAPPED lpOverlapped
);

Параметры

hFile

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

lpOverlapped

Указатель на структуру данных OVERLAPPED, которая содержит в себе данные, используемые для их асинхронного ввода/вывода (I/O).

Если этот параметр - NULL, все запросы на ввод-вывод (I/O) данных для параметра hFile отменяются.

Если этот параметр не NULL, то помечаются как отмененные только те конкретные запросы на ввод-вывод (I/O) данных, которые были выданы для файла с указанной параметром lpOverlapped асинхронной (перекрывающей) структурой, означая, что Вы можете отменить один или несколько запросов, пока функция CancelIo отменяет все ожидающие выполнения запросы на дескрипторе файла.

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

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

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

Если эта функция не может найти запрос на отмену ввода/вывода, возвращаемое значение 0 (нуль), а GetLastError возвращает значение ERROR_NOT_FOUND.

Замечания

Функция CancelIoEx дает возможность отменять запросы в потоках, других, чем вызывающий поток. Функция CancelIo отменяет запросы только в том же самом потоке, который вызывал функцию CancelIo. Функция CancelIoEx отменяет только ожидающий выполнения ввод - вывод (I/O) на дескрипторе, она не изменяет состояние дескриптора; это означает, что Вы не можете зависеть от состояния дескриптора, потому что Вы не можете знать, была ли операция завершена успешно или отменена.

Если имеются какие-либо ожидающие завершения операции ввода/вывода (I/O) исполняемые в текущий момент для заданного дескриптора файла, функция CancelIoEx отмечает их для отмены. Большинство типов операций, может быть отменено немедленно; другие операции могут продолжиться далее до завершения перед тем, как они фактически будут отменены, а вызывающая программа получит уведомление. Функция CancelIoEx не ждет завершения всех отмененных операций.

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

Отменяющаяся операция завершает работу в одном из трех состояний; Вы должны проверить состояние завершения, чтобы определить состояние завершения. Этими тремя состояниями являются:

Смотри также

Обзор Управление файлами, Функции, для файлового ввода-вывода (I/O), CancelIo, CancelSynchronousIo

Размещение и совместимость CancelIoEx
К Windows Vista Да
л Windows XP Нет
и Windows 2000 Professional Нет
е Windows NT Workstation Нет
н Windows Me Нет
т Windows 98 Нет
  Windows 95 Нет
 
С Windows Server 2008 Да
е Windows Server 2003 Нет
р Windows 2000 Server Нет
в Windows NT Server Нет
е    
р    
Используемая библиотека Kernel32.lib
Используемая DLL kernel32.dll
Заголовочный файл  
- объявлено в Winbase.h
- включено в -
Unicode Нет
Замечания по платформе Не имеется

 

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz