Поделиться через


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