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 字符串分析的扩展名。 如果未找到扩展, 则 FltParseFileNameExtension.Buffer 设置为 NULL将 Extension.Length 设置为零。 否则, Extension.Buffer 接收指向 FileName.Buffer 中扩展名开头的指针, 而 Extension.Length 接收扩展名的长度(以字节为单位)。 此参数是可选的,可以为 NULL

[in, out] Stream

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

[in, out] FinalComponent

指向UNICODE_STRING 结构的指针,该结构接收从 FileName 字符串分析的最终名称组件。 如果未找到最终组件, 则 FltParseFileNameFinalComponent.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”

StreamNULL

FinalComponent:“TestRe~1.txt”

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

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

要求

要求
最低受支持的客户端 在 Windows 操作系统) 及更高版本的 Service Pack 2 的 Windows XP (SP2 中可用。
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_FILE_NAME_INFORMATION

FltParseFileNameInformation

UNICODE_STRING