Функция FltParseFileName (fltkernel.h)

FltParseFileName анализирует расширение, поток и окончательный компонент из строки имени файла.

Синтаксис

NTSTATUS FLTAPI FltParseFileName(
  [in]      PCUNICODE_STRING FileName,
  [in, out] PUNICODE_STRING  Extension,
  [in, out] PUNICODE_STRING  Stream,
  [in, out] PUNICODE_STRING  FinalComponent
);

Параметры

[in] FileName

Указатель на структуру UNICODE_STRING, содержащую строку для синтаксического анализа в качестве имени файла. Этот параметр является обязательным и не может быть null.

[in, out] Extension

Указатель на структуру UNICODE_STRING, которая получает расширение, проанализированное из строки FileName. Если расширение не найдено, FltParseFileName задает Extension.Buffer значение null и Extension.Length равно нулю. В противном случае Extension.Buffer получает указатель на начало расширения в FileName.Buffer, а Extension.Length получает длину в байтах расширения. Этот параметр является необязательным и может быть null.

[in, out] Stream

Указатель на структуру UNICODE_STRING, которая получает имя потока, проанализированное из строки FileName. Если имя потока не найдено, FltParseFileName задает Stream.Buffer значение NULL и Stream.Length равным нулю. В противном случае Stream.Buffer получает указатель на начало имени потока в FileName.Buffer, а Stream.Length получает длину в байтах имени потока. Этот параметр является необязательным и может быть null.

[in, out] FinalComponent

Указатель на структуру UNICODE_STRING, которая получает окончательный компонент имени, проанализированный из строки FileName. Если конечный компонент не найден, FltParseFileName задает FinalComponent.Buffer значение NULL и FinalComponent.Length равно нулю. В противном случае FinalComponent.Buffer получает указатель на начало окончательного компонента в FileName.Buffer, а FinalComponent.Length получает длину в байтах окончательного компонента. Этот параметр является необязательным и может быть null.

Возвращаемое значение

FltParseFileName возвращает STATUS_SUCCESS или соответствующий код ошибки NTSTATUS.

Замечания

FltParseFileName анализирует расширение, имя потока и окончательный компонент из строки имени файла. Имя файла не обязательно нормализовано или полное имя пути. Если имя файла является коротким именем файла, FltParseFileName анализирует только расширение.

Ниже приведен пример нормализованного имени для локального файла:

\Device\HarddiskVolume1\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1

FltParseFileName анализирует это нормализованное имя следующим образом:

расширение : txt

Stream: ":stream1"

FinalComponent: "Test Results.txt:stream1"

Ниже приведен пример короткого имени файла:

TestRe~1.txt

FltParseFileName анализирует это короткое имя следующим образом:

расширение : txt

Stream: NULL

FinalComponent: "TestRe~1.txt"

Дополнительные сведения о нормализации имени файла и синтаксическом анализе имен файлов см. в FLT_FILE_NAME_INFORMATION.

Чтобы проанализировать содержимое структуры FLT_FILE_NAME_INFORMATION, вызовите FltParseFileNameInformation.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows XP с пакетом обновления 2 (SP2) и более поздними версиями операционной системы Windows.
целевая платформа Всеобщий
заголовка fltkernel.h (include Fltkernel.h)
библиотеки FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также

FLT_FILE_NAME_INFORMATION

FltParseFileNameInformation

UNICODE_STRING