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 值,如下所示:
返回代码 | 说明 |
---|---|
|
该文件驻留在当前未装载的卷上。 这是错误代码。 |
注解
微筛选器驱动程序调用 FltQueryInformationFile 以检索 FileObject 标识的文件的信息。 文件当前必须处于打开状态。
FltQueryInformationFile 在不受特定文件系统支持的 FILE_XXX_INFORMATION 结构的任何成员中返回零。
FltQueryInformationFile 的调用方必须在 IRQL = PASSIVE_LEVEL 且已启用 APC 的情况下运行。
注意: 请勿使用非 NULL 顶级 IRP 值调用此例程,因为这样可能会导致系统死锁。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL (请参阅“备注”部分) |