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

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

Синтаксис

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

Параметры

[in] FileObject

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

[in, optional] Event

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

[in, optional] PortContext

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

[out] IoStatusBlock

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

[in] Buffer

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

[in] Length

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

[in, optional] Key

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

[in] RequestorMode

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib