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 设置为 NULL,Stream.Length 设置为零。 否则,Stream.Buffer 接收指向 FileName.Buffer中流名称开头的指针,Stream.Length 接收流名称的长度(以字节为单位)。 此参数是可选的,可以 NULL。
[in, out] FinalComponent
指向接收从 FileName 字符串分析的最终名称组件UNICODE_STRING结构的指针。 如果未找到最终组件,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”
流: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 |