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 XP 中提供 Service Pack 2 (SP2) 和更新版本的 Windows 操作系統。 |
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | <= APC_LEVEL |