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 之前调用当前筛选器下的所有筛选器。 如果 InstanceNULL,则 I/O 将始终发送到筛选器堆栈的顶部。

要求

要求
最低受支持的客户端 Windows 10版本 1706
标头 fltkernel.h
Library FltMgr.lib
DLL Fltmgr.sys

另请参阅

FILE_INFORMATION_CLASS