Функция FileIOCompletionRoutine - определяемая программой функция обратного вызова, используемая с функциями ReadFileEx и WriteFileEx. Она вызывается тогда, когда операция асинхронного ввода и вывода данных завершается или отменяется, а вызывающий поток находится в состоянии готовности (использующий функцию SleepEx, MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx или WaitForMultipleObjectsEx с параметром fAlertable, установленным в ИСТИНУ (TRUE).
Тип LPOVERLAPPED_COMPLETION_ROUTINE определяет указатель на эту функцию обратного вызова. FileIOCompletionRoutine - символ-заместитель для определяемого программой названия функции.
Синтаксис
VOID CALLBACK FileIOCompletionRoutine( DWORD dwErrorCode, // код завершения DWORD dwNumberOfBytesTransfered, // передаваемое число байтов LPOVERLAPPED lpOverlapped // буфер информации I/O ); |
Параметры
dwErrorCode
[in] Состояние завершения ввода - вывода. Этим параметром может быть один из кодов системных ошибок .dwNumberOfBytesTransfered
[in] Переданное число байтов. Если происходит ошибка, этот параметр равняется нулю.lpOverlapped
[in] Указатель на структуру OVERLAPPED, указанную асинхронной функцией ввода - вывода.Система не использует член hEvent структуры OVERLAPPED; вызывающая программа может использовать этот член структуры, чтобы передать информацию в процедуру завершения. Система не использует структуру OVERLAPPED после того, как процедура завершения вызвана, так что процедура завершения может освободить память, используемую асинхронной структурой.
Возвращаемые значения
Эта функция не возвращает значений.
Замечания
Функция FileIOCompletionRoutine - это символ - заместитель для определяемого программой или определяемого библиотекой имени функции.
Возвращение из этой функции дает возможность быть вызванной другой ждущей обработки процедуре завершения ввода - вывода. Все ждущие процедуры завершения вызываются до того, как ожидание приведенного в готовность потока, завершается кодом возврата WAIT_IO_COMPLETION. Система может вызывать ожидающие процедуры завершения в любом порядке. Они могут или не могут быть вызваны в порядке завершения работы функций ввода - вывода .
Каждый раз, когда система вызывает процедуру завершения, она использует часть стека прикладной программы. Если процедура завершения делает дополнительный асинхронный ввод - вывод и в в состоянии готовности ждет, стек может расти.
Для получения дополнительной информации, см. Вызовы асинхронных процедур.
Смотри также
Обзор Управление файлами, Функции, для файлового ввода-вывода (I/O), OVERLAPPED, ReadFileEx, SleepEx, WaitForMultipleObjectsEx, WaitForSingleObjectEx, WriteFileEx
Размещение и совместимость FileIOCompletionRoutine |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Нет |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
- |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |