FLT_FILE_NAME_OPTIONS

FLT_FILE_NAME_OPTIONS类型是一个 ULONG 值,该值指定文件名信息查询的名称格式、查询方法和标志。

typedef ULONG FLT_FILE_NAME_OPTIONS;
#define FLT_VALID_FILE_NAME_FORMATS                       0x000000ff
    #define FLT_FILE_NAME_NORMALIZED                      0x00000001
    #define FLT_FILE_NAME_OPENED                          0x00000002
    #define FLT_FILE_NAME_SHORT                           0x00000003
#define FLT_VALID_FILE_NAME_QUERY_METHODS                 0x0000ff00
    #define FLT_FILE_NAME_QUERY_DEFAULT                   0x00000100
    #define FLT_FILE_NAME_QUERY_CACHE_ONLY                0x00000200
    #define FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY           0x00000300
    #define FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP 0x00000400
#define FLT_VALID_FILE_NAME_FLAGS                         0xff000000
    #define FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER   0x01000000
    #define FLT_FILE_NAME_DO_NOT_CACHE                    0x02000000
    #define FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE          0x04000000

位 0 到 7 指示文件格式,可以使用 FltGetFileNameFormat 宏查询该格式。 有关这些格式的说明,请参阅 FLT_FILE_NAME_INFORMATION。 当前定义了以下值。

含义
FLT_FILE_NAME_NORMALIZED 文件的规范化名称。
FLT_FILE_NAME_OPENED 打开此文件的句柄时使用的名称。 此名称未规范化。
FLT_FILE_NAME_SHORT 文件的短 (8.3) 名称。 文件的短名称不包括卷名称、目录路径或流名称。 此名称未规范化。

第 8 位到第 15 位指定筛选器管理器要使用的文件名查询方法,可以使用 FltGetFileNameQueryMethod 宏进行查询。 有关这些值的说明,请参阅 FltGetFileNameInformation。 当前定义了以下值。

含义
FLT_FILE_NAME_QUERY_DEFAULT 如果当前无法安全地在文件系统中查询文件名,则不执行任何操作。 否则,请在筛选器管理器的名称缓存中查询文件名信息。 如果在缓存中找不到该名称,请查询文件系统并缓存结果。
FLT_FILE_NAME_QUERY_CACHE_ONLY 查询筛选器管理器的名称缓存以获取文件名信息。 不要查询文件系统。
FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY 在文件系统中查询文件名信息。 不要查询筛选器管理器的名称缓存,也不缓存文件系统查询的结果。
FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP 查询筛选器管理器的名称缓存以获取文件名信息。 如果在缓存中找不到该名称,并且当前可以安全地执行此操作,请在文件系统中查询文件名信息并缓存结果。

位 16 到 23 当前未使用。

名称提供程序微筛选器使用位 24 到 31 来指定文件名标志。 当前定义了以下值。

含义
FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER 名称提供程序微筛选器可以使用此标志来指示名称查询请求应重定向到自身,而不是由堆栈中较低的名称提供程序筛选器满足。
FLT_FILE_NAME_DO_NOT_CACHE 此标志表示不应缓存从此查询检索到的名称。 名称提供程序微筛选器在执行中间查询以生成名称时使用此标志。
FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE 名称提供程序微筛选器可以使用此标志来指定即使返回了STATUS_REPARSE,也可以安全地查询创建后路径中的名称。 调用方负责确保 FileObject-FileName> 字段未更改。 请勿将此标志与装入点或符号链接重分析点一起使用。

要求

要求类型 要求
标头 Fltkernel.h (包括 Fltkernel.h)

FLT_FILE_NAME_INFORMATION

FltGetDestinationFileNameInformation

FltGetFileNameFormat

FltGetFileNameInformation

FltGetFileNameInformationUnsafe

FltGetFileNameQueryMethod