Функция FltDeviceIoControlFile (fltkernel.h)

FltDeviceIoControlFile отправляет управляющий код непосредственно указанному драйверу устройства, в результате чего соответствующий драйвер выполняет указанное действие.

Синтаксис

NTSTATUS FLTAPI FltDeviceIoControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         IoControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out]           PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

Параметры

[in] Instance

Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.

[in] FileObject

Указатель на объект файла или устройства, которые являются целевым объектом этого запроса. Этот параметр является обязательным и не может иметь значение NULL.

[in] IoControlCode

IOCTL_ кодXXX, указывающий, какая операция ввода-вывода устройства должна быть выполнена. Значение этого параметра определяет форматы и необходимую длину InputBuffer и OutputBuffer, а также определяет, какая из следующих пар параметров (InputBuffer и InputBufferLength или OutputBuffer и OutputBufferLength) является обязательной.

[in, optional] InputBuffer

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

[in] InputBufferLength

Размер буфера в байтах в InputBuffer. Это значение игнорируется, если inputBuffer имеет значение NULL.

[out] OutputBuffer

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

[in] OutputBufferLength

Размер буфера в байтах в OutputBuffer. Это значение игнорируется, если OutputBuffer имеет значение NULL.

[out, optional] LengthReturned

Указатель на переменную, выделенную вызывающим объектом, которая получает размер в байтах сведений, возвращаемых в буфере в OutputBuffer. Этот параметр является необязательным и может иметь значение NULL.

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

FltDeviceIoControlFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS.

Комментарии

Дополнительные сведения о системных кодах IOCTL_XXX см. в разделе Примечания справочной записи по DeviceIoControl в документации по Microsoft Windows SDK.

Требования

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

См. также раздел

FltFsControlFile