Функция 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 |