Функция 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 задает значение NULL для параметра Extension.Buffer, а для параметра Extension.Length — нулевое значение. В противном случае Extension.Buffer получает указатель на начало расширения в fileName.Buffer, а Extension.Length получает длину расширения в байтах. Этот параметр является необязательным и может иметь значение NULL.

[in, out] Stream

Указатель на структуру UNICODE_STRING, получающую имя потока, проанализированное из строки FileName . Если имя потока не найдено, FltParseFileName задает Stream. Буфер в значение NULL и Stream. Длина до нуля. В противном случае 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 (включая Fltkernel.h)
Библиотека FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

См. также раздел

FLT_FILE_NAME_INFORMATION

FltParseFileNameInformation

UNICODE_STRING