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


Функция 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, и определяет, какие из следующих пар параметров (InputBB требуется и InputBufferLengthили OutputBuffer и outputBufferLength OutputBufferLength).

[in, optional] InputBuffer

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

[in] InputBufferLength

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

[out] OutputBuffer

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

[in] OutputBufferLength

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

[out, optional] LengthReturned

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

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

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

Замечания

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

Требования

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

См. также

FltFsControlFile