FltQueryInformationFile 检索给定文件的信息。
Syntax
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
);
Parameters
[in] Instance
调用方不透明实例指针。 此参数是必需的,不能 NULL。
[in] FileObject
文件的文件对象指针。 此参数是必需的,不能 NULL。
[out] FileInformation
指向接收有关文件的调用方分配的缓冲区的指针。 FileInformationClass 参数指定信息的类型。 此参数是必需的,不能 NULL。
[in] Length
FileInformation 缓冲区的大小(以字节为单位)。
[in] FileInformationClass
一个 FILE_INFORMATION_CLASS 值,该值指定要在 FileInformation 缓冲区中返回的文件信息的类型。
[out, optional] LengthReturned
指向调用方分配的变量的指针,该变量接收 FileInformation 缓冲区中返回的信息的大小(以字节为单位)。 此参数是可选的,可以 NULL。
Return value
FltQueryInformationFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:
| Return code | Description |
|---|---|
|
该文件驻留在当前未装载的卷上。 这是一个错误代码。 |
Remarks
微型筛选器驱动程序调用 FltQueryInformationFile,以检索由 FileObject标识的文件的信息。 文件当前必须处于打开状态。
FltQueryInformationFile 返回特定文件系统不支持的 FILE_XXX_INFORMATION 结构的任何成员中的零。
FltQueryInformationFile 的调用方必须在 IRQL = PASSIVE_LEVEL且启用了特殊内核 APC 的情况下运行。
注意: 不要使用非 NULL 顶级 IRP 值调用此例程,因为这可能会导致系统死锁。
Requirements
| Requirement | Value |
|---|---|
| Target Platform | Universal |
| Header | fltkernel.h (包括 Fltkernel.h) |
| Library | FltMgr.lib |
| DLL | Fltmgr.sys |
| IRQL | PASSIVE_LEVEL(请参阅“备注”部分) |