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


Функция KsReadFile (ks.h)

Функция KsReadFile выполняет чтение для указанного объекта файла. Предполагается, что вызывающий объект сериализует доступ к файлу для операций с объектом файла FO_SYNCHRONOUS_IO. Функция пытается использовать FastIoDispatch, если это возможно, или создает запрос на чтение для объекта устройства. Все соответствующие статистические данные обновляются.

Синтаксис

KSDDKAPI NTSTATUS KsReadFile(
  [in]           PFILE_OBJECT     FileObject,
  [in, optional] PKEVENT          Event,
  [in, optional] PVOID            PortContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in, optional] ULONG            Key,
  [in]           KPROCESSOR_MODE  RequestorMode
);

Параметры

[in] FileObject

Указывает объект файла для выполнения операции чтения.

[in, optional] Event

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

[in, optional] PortContext

При необходимости содержит сведения о контексте для порта завершения.

[out] IoStatusBlock

Указывает адрес, в котором возвращаются сведения о состоянии. Это всегда считается допустимым адресом независимо от режима запроса.

[out] Buffer

Указывает буфер, в котором нужно разместить данные для чтения. Если буфер должен быть проверен и заблокирован, используется обработчик исключений, а также RequesterMode.

[in] Length

Указывает размер переданного буфера.

[in, optional] Key

При необходимости содержит ключ или ноль, если нет

[in] RequestorMode

Указывает режим процессора, который нужно разместить в IRP чтения, если необходимо создать. Кроме того, он используется, если буфер должен быть проверен и заблокирован. Эта переменная также определяет, можно ли выполнять быстрый вызов ввода-вывода. Если режим запроса не является KernelMode, но предыдущий режим был, то использовать быстрый ввод-вывод нельзя.

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

Функция KsReadFile возвращает STATUS_SUCCESS в случае успешного выполнения, STATUS_PENDING, если действие ожидается, или возвращает ошибку чтения при неудачном выполнении.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib