Функция 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 (включая Ks.h) |
Библиотека | Ks.lib |