Функция 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 |