FltQueryInformationByName 函数 (fltkernel.h)
FltQueryInformationByName 例程返回有关命名文件的请求信息。
语法
NTSTATUS FLTAPI FltQueryInformationByName(
[in] PFLT_FILTER Filter,
[in, optional] PFLT_INSTANCE Instance,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID FileInformation,
[in] ULONG Length,
[in] FILE_INFORMATION_CLASS FileInformationClass,
[in, optional] PIO_DRIVER_CREATE_CONTEXT DriverContext
);
参数
[in] Filter
指定启动此操作的筛选器。
[in, optional] Instance
指定创建目标所在的实例。
重要
实例 不一定是启动实例。 如果此参数为非 NULL,则它必须与创建目标实例匹配。 如果 Instance 为非 NULL,则不调用当前筛选器的预创建回调。 预回调从当前筛选器下方的筛选器开始。
[in] ObjectAttributes
指向 [OBJECT_ATTRIBUTES] 结构的指针,其中包含要用于文件对象的属性 (例如其名称、SECURITY_DESCRIPTOR等 ) 。
[out] IoStatusBlock
指向包含调用方 I/O 状态块 的IO_STATUS_BLOCK 结构的指针。
[out] FileInformation
指向结构的指针,该结构接收返回的有关该文件的请求信息。 结构的类型由 FileInformationClass 决定。
[in] Length
FileInformation 缓冲区的长度(以字节为单位)。
[in] FileInformationClass
一个FILE_INFORMATION_CLASS枚举值,该值指定要返回的有关文件的信息的类型。 可以是以下其中一个值:
值 | FileInformation 指向的结构的类型 |
---|---|
FileStatInformation | FILE_STAT_INFORMATION |
FileStatLxInformation | **FILE_STAT_LX_INFORMATION |
FileCaseSensitiveInformation | FILE_CASE_SENSITIVE_INFORMATION。 调用方必须已使用 DesiredAccess 参数中指定的FILE_READ_ATTRIBUTES标志打开文件。 此值从 Windows 10 版本 1803 开始可用。 |
FileCaseSensitiveInformationForceAccessCheck | FILE_CASE_SENSITIVE_INFORMATION。 这是 FileCaseSensitiveInformation 操作的特殊版本,用于强制 IO 管理器对内核模式驱动程序执行访问检查,类似于适用于用户模式调用者的检查。 此操作仅由 IO 管理器识别,文件系统应永远不会收到它。 此值从 Windows 10 版本 1803 开始可用。 |
[in, optional] DriverContext
指向驱动程序上下文空间的指针。
返回值
如果操作成功,则返回STATUS_SUCCESS。 否则,返回相应的 NTSTATUS 错误代码。
注解
此函数返回有关文件的请求信息,而无需打开实际文件。 返回的信息由指定的 FileInformationClass 确定,并放置在调用方 FileInformation 缓冲区中。
如果 Instance 为非 NULL ,则创建将面向指定的实例,在发送 I/O 之前调用当前筛选器下的所有筛选器。 如果 Instance 为 NULL,则 I/O 将始终发送到筛选器堆栈的顶部。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10版本 1706 |
标头 | fltkernel.h |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈