IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN FILE_SEGMENT_ELEMENT SegmentArray,
IN ULONG Length,
IN PLARGE_INTEGER ByteOffset,
IN PULONG Key OPTIONAL );
Функция NtReadFileScatter читает заданный блок из файла в несколько буферов.
Каждый буфер должен иметь длину страницы (0x1000 байт на x86).
FileHandle
HANDLE файла, открытый с доступом FILE_READ_DATA и опцией открытия FILE_NO_INTERMEDIATE_BUFFERING.
Event
HANDLE события, которое переходит в сигнальное состояние после того, как состоялось чтение. Этот параметр необязательный, но при вызове следует использовать этот или другой метод нотификации, так как вызов функции асинхронный.
ApcRoutine
Указатель на функцию APC.
ApcContext
Параметр для ApcRoutine.
IoStatusBlock
Результат ввода-вывода.
SegmentArray
Массив элементов типа FILE_SEGMENT_ELEMENT. Каждый элемент указывает на адрес страницы памяти, при этом память является уже выделенной.
Последний элемент массива должен быть NULL.
Length
Количество байт для чтения.
ByteOffset
Указатель на LARGE_INTEGER, это позиция начала чтения.
Key
Дополнительный указатель на пользовательский ключ,
который используется, если файл залочен (см. NtLockFile).
Смотрите также описание ReadFileScatter в Microsoft SDK.