FltQueryInformationFile 函数 (fltkernel.h)

FltQueryInformationFile 检索给定文件的信息。

语法

NTSTATUS FLTAPI FltQueryInformationFile(
  [in]            PFLT_INSTANCE          Instance,
  [in]            PFILE_OBJECT           FileObject,
  [out]           PVOID                  FileInformation,
  [in]            ULONG                  Length,
  [in]            FILE_INFORMATION_CLASS FileInformationClass,
  [out, optional] PULONG                 LengthReturned
);

参数

[in] Instance

调用方不透明实例指针。 此参数是必需的,不能 NULL

[in] FileObject

文件的文件对象指针。 此参数是必需的,不能 NULL

[out] FileInformation

指向接收有关文件的调用方分配的缓冲区的指针。 FileInformationClass 参数指定信息的类型。 此参数是必需的,不能 NULL

[in] Length

FileInformation 缓冲区的大小(以字节为单位)。

[in] FileInformationClass

一个 FILE_INFORMATION_CLASS 值,该值指定要在 FileInformation 缓冲区中返回的文件信息的类型。

[out, optional] LengthReturned

指向调用方分配的变量的指针,该变量接收 FileInformation 缓冲区中返回的信息的大小(以字节为单位)。 此参数是可选的,可以 NULL

返回值

FltQueryInformationFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:

返回代码 描述
STATUS_VOLUME_DISMOUNTED
该文件驻留在当前未装载的卷上。 这是一个错误代码。

言论

微型筛选器驱动程序调用 FltQueryInformationFile,以检索由 FileObject标识的文件的信息。 文件当前必须处于打开状态。

FltQueryInformationFile 返回特定文件系统不支持的 FILE_XXX_INFORMATION 结构的任何成员中的零。

FltQueryInformationFile 的调用方必须在 IRQL = PASSIVE_LEVEL和启用了 APC 的 运行。

注意: 不要使用非 NULL 顶级 IRP 值调用此例程,因为这可能会导致系统死锁。

要求

要求 价值
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL(请参阅“备注”部分)

另请参阅

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile