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