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

指向接收从 FileName 字符串分析的扩展的UNICODE_STRING结构的指针。 如果未找到扩展,FltParseFileName 会将 extension.Buffer 设置为NULL,并将 Extension.Length 设置为零。 否则,Extension.Buffer 接收指向 FileName.Buffer中扩展开头的指针,Extension.Length 接收扩展的长度(以字节为单位)。 此参数是可选的,可以 NULL

[in, out] Stream

指向从 FileName 字符串中分析的流名称的UNICODE_STRING结构的指针。 如果未找到流名称,FltParseFileName 将 stream.Buffer 设置为 NULLStream.Length 设置为零。 否则,Stream.Buffer 接收指向 FileName.Buffer中流名称开头的指针,Stream.Length 接收流名称的长度(以字节为单位)。 此参数是可选的,可以 NULL

[in, out] FinalComponent

指向接收从 FileName 字符串分析的最终名称组件UNICODE_STRING结构的指针。 如果未找到最终组件,FltParseFileName 会将 finalComponent.Buffer 设置为 NULLFinalComponent.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”

NULL

FinalComponent:“TestRe~1.txt”

有关文件名规范化和文件名分析的详细信息,请参阅 FLT_FILE_NAME_INFORMATION

若要分析FLT_FILE_NAME_INFORMATION结构的内容,请调用 FltParseFileNameInformation

要求

要求 价值
最低支持的客户端 在 Windows XP 中提供 Service Pack 2(SP2)和更高版本的 Windows作系统。
目标平台 普遍
标头 fltkernel.h (包括 Fltkernel.h)
FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_FILE_NAME_INFORMATION

FltParseFileNameInformation

UNICODE_STRING