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,则它必须与创建的目标实例匹配。 如果 实例 为非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 缓冲区中。
如果 实例 为非NULL,则创建将针对指定的实例,在发送 I/O 之前调用当前筛选器下方的所有筛选器。 如果 实例NULL,则 I/O 将始终发送到筛选器堆栈的顶部。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 10 版本 1706 |
标头 | fltkernel.h |
库 | FltMgr.lib |
DLL | Fltmgr.sys |