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

Unicode 字串,包含檔案的簡短 (8.3) 名稱。 如果 KeyByShortNameFALSE則 ShortName 是選擇性的。

[in] LongName

包含檔案完整名稱的 Unicode 字串。 長檔名是超過標準 8.3 檔名格式的檔案或目錄名稱。 如果 KeyByShortNameTRUE,LongName 是選擇性的。

[in] KeyByShortName

如果要從目錄中刪除的檔名是檔案的簡短名稱,則設定為 TRUE ;如果檔名是完整名稱,則設定為 FALSE

[in] DataLength

要儲存在此檔案之通道快取專案中之資訊的位元組長度。 此參數的值是文件系統特定的,但通道快取中的所有專案都必須相同。

[in] Data

緩衝區的指標,其中包含要儲存在此檔案之通道快取專案中的文件系統特定資訊。

傳回值

備註

從) 重新命名或刪除檔案的目錄 (移除檔名時,文件系統可以呼叫 FsRtlAddToTunnelCache 來快取檔名。 通道快取的目的是在建立的新檔案時傳播檔案屬性,該檔案的名稱與剛刪除或重新命名的檔案相同或短名稱。

FsRtlAddToTunnelCache 會建立新的專案,其中包含指定的檔名和目錄密鑰,並將專案新增至已掛接磁碟區移除或刪除的專案。 此專案也可以包含檔案檔案系統特定資訊的固定大小數據封包。

呼叫端必須針對 FsRtlDeleteTunnelCache 同步處理此呼叫。 換句話說,文件系統必須確定它不會從不同的線程同時呼叫 FsRtlAddToTunnelCacheFsRtlDeleteTunnelCache

如需檔名通道的詳細資訊,請參閱 Microsoft 知識庫文章 172190

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

FsRtlDeleteKeyFromTunnelCache

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING