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
作为此请求目标的文件或目录的文件对象指针。 此参数是必需的,不能 NULL。
[in] FsControlCode
FSCTL_XXX 代码,用于指示要执行哪些文件系统作。此参数的值确定 InputBuffer 和 OutputBuffer的格式和所需长度,并确定以下参数对中的哪一个(需要 InputBuffer 和 InputBufferLength、OutputBuffer 和 OutputBufferLength)。
[in, optional] InputBuffer
指向调用方分配的输入缓冲区的指针,该缓冲区包含要提供给目标驱动程序的设备特定信息。 如果 FsControlCode 参数指定不需要输入数据的作,则此参数是可选的,并且可以 NULL。
[in] InputBufferLength
InputBuffer处缓冲区的大小(以字节为单位)。 如果 InputBufferNULL,则忽略此值。
[out, optional] OutputBuffer
指向调用方分配的输出缓冲区的指针,在该缓冲区中从目标驱动程序返回信息。 如果 FsControlCode 参数指定不需要输出数据的作,则此参数是可选的,并且可以 NULL。
[in] OutputBufferLength
OutputBuffer处缓冲区的大小(以字节为单位)。 如果 outputBufferNULL,则忽略此值。
[out, optional] LengthReturned
指向调用方分配的变量的指针,该变量接收 OutputBuffer缓冲区中返回的信息的大小(以字节为单位)。 此参数是可选的,可以 NULL。
返回值
FltFsControlFile 返回STATUS_SUCCESS或适当的 NTSTATUS 值。
言论
微型筛选器驱动程序应调用此例程,而不是 ZwFsControlFile。
内核模式驱动程序目前记录了以下 FSCTL 代码:
FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
有关系统定义FSCTL_XXX 代码的详细信息,请参阅 Microsoft Windows SDK 文档中 DeviceIoControl 参考条目的“备注”部分。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |