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.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 |