Недокументированные функции NTDLL

14 февраля 2001



NtReadFileScatter (ZwReadFileScatter)

NTSYSAPI 
NTSTATUS
NTAPI

NtReadFileScatter(

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.


    Документировал:
    Томаш Новак



    Зависимости:
    Библиотека: ntdll.lib


    См. также:
    NtCreateFile
    NtLockFile
    NtOpenFile
    NtReadFile
    NtUnlockFile
    NtWriteFileGather