FsRtlAddToTunnelCache 函式 (ntifs.h)
FsRtlAddToTunnelCache 例程會快取在重新命名或刪除檔案時從目錄移除的檔名。
語法
void FsRtlAddToTunnelCache(
[in] TUNNEL *Cache,
[in] ULONGLONG DirectoryKey,
[in] UNICODE_STRING *ShortName,
[in] UNICODE_STRING *LongName,
[in] BOOLEAN KeyByShortName,
[in] ULONG DataLength,
[in] VOID *Data
);
參數
[in] Cache
FsRtlInitializeTunnelCache初始化之通道快取的指標。
[in] DirectoryKey
目錄的索引鍵值,其中包含正在刪除或重新命名的檔案。 目錄金鑰是唯一未簽署的 64 位識別碼,由檔案系統產生並指派給目錄。
[in] ShortName
包含檔案簡短 (8.3) 名稱的 Unicode 字串。 如果 KeyByShortNameFALSE,則 ShortName 為選擇性。
[in] LongName
包含檔案長名稱的 Unicode 字串。 長檔名是超過標準 8.3 檔名格式的檔案或目錄名稱。 如果 KeyByShortNameTRUE,則 LongName 為選擇性。
[in] KeyByShortName
如果要從目錄中刪除的檔名是檔案的簡短名稱,TRUE,如果檔名是長名稱,FALSE。
[in] DataLength
要儲存在此檔案之通道快取專案中的資訊位元組長度。 此參數的值是文件系統特定的,但通道快取中的所有專案都必須相同。
[in] Data
緩衝區的指標,其中包含要儲存在此檔案之通道快取專案中的文件系統特定資訊。
傳回值
沒有
言論
從目錄移除檔名時,文件系統可以呼叫 FsRtlAddToTunnelCache來快取檔名。 通道快取的目的是在建立新檔案時傳播檔案屬性,該檔案的名稱與剛刪除或重新命名的檔案具有相同的長或短名稱。
FsRtlAddToTunnelCache 會建立新的專案,其中包含指定的檔名和目錄索引鍵,並將專案新增至掛接磁碟區的通道快取中,檔案正在移除或刪除。 這個專案也可以包含檔案檔案系統特定資訊的固定大小數據封包。
呼叫端必須針對 FsRtlDeleteTunnelCache同步處理此呼叫。 換句話說,文件系統必須確保它不會從不同的線程同時呼叫 FsRtlAddToTunnelCache 和 FsRtlDeleteTunnelCache。
如需檔案名通道的詳細資訊,請參閱 Microsoft 知識庫文章 172190。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |