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。缓冲区为 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 操作系统) 及更高版本的 Service Pack 2 的 Windows XP (SP2 中可用。 |
目标平台 | 通用 |
标头 | fltkernel.h (包括 Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |