Функция FltFsControlFile (fltkernel.h)
Подпрограмма FltFsControlFile отправляет управляющий код непосредственно в указанную файловую систему или драйвер фильтра файловой системы, в результате чего соответствующий драйвер будет выполнять указанное действие.
Синтаксис
NTSTATUS FLTAPI FltFsControlFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in, optional] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out, optional] PVOID OutputBuffer,
[in] ULONG OutputBufferLength,
[out, optional] PULONG LengthReturned
);
Параметры
[in] Instance
Указатель непрозрачного экземпляра для вызывающего объекта. Этот параметр является обязательным и не может иметь значение NULL.
[in] FileObject
Указатель на объект file для файла или каталога, которые являются целевым объектом этого запроса. Этот параметр является обязательным и не может иметь значение NULL.
[in] FsControlCode
FSCTL_ кодXXX , указывающий, какая операция файловой системы должна выполняться. Значение этого параметра определяет форматы и необходимую длину InputBuffer и OutputBuffer, а также определяет, какая из следующих пар параметров (InputBuffer и InputBufferLength, OutputBuffer и OutputBufferLength) является обязательной.
[in, optional] InputBuffer
Указатель на выделенный вызывающим объектом входной буфер, содержащий сведения о конкретном устройстве, которые должны быть переданы целевому драйверу. Если параметр FsControlCode указывает операцию, которая не требует входных данных, этот параметр является необязательным и может иметь значение NULL.
[in] InputBufferLength
Размер (в байтах) буфера в InputBuffer. Это значение игнорируется, если InputBuffer имеет значение NULL.
[out, optional] OutputBuffer
Указатель на выделенный вызывающим выходной буфер, в котором данные возвращаются из целевого драйвера. Если параметр FsControlCode указывает операцию, которая не требует выходных данных, этот параметр является необязательным и может иметь значение NULL.
[in] OutputBufferLength
Размер буфера в байтах в OutputBuffer. Это значение игнорируется, если OutputBuffer имеет значение NULL.
[out, optional] LengthReturned
Указатель на переменную, выделенную вызывающим объектом, которая получает размер (в байтах) сведений, возвращаемых в буфере в OutputBuffer. Этот параметр является необязательным и может иметь значение NULL.
Возвращаемое значение
FltFsControlFile возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS.
Комментарии
Драйверы минифильтра должны вызывать эту подпрограмму вместо ZwFsControlFile.
Следующие коды FSCTL в настоящее время задокументированы для драйверов режима ядра:
FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
Дополнительные сведения о системных кодах FSCTL_XXX см. в разделе Примечания справочной записи по DeviceIoControl в документации по Microsoft Windows SDK.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |