共用方式為


FsRtlFindInTunnelCache 函式 (ntifs.h)

FsRtlFindInTunnelCache 例程會在通道快取中搜尋符合指定名稱的相符專案。

語法

BOOLEAN FsRtlFindInTunnelCache(
  [in]      TUNNEL         *Cache,
            ULONGLONG      DirectoryKey,
  [in]      UNICODE_STRING *Name,
  [out]     UNICODE_STRING *ShortName,
  [out]     UNICODE_STRING *LongName,
  [in, out] ULONG          *DataLength,
  [out]     VOID           *Data
);

參數

[in] Cache

FsRtlInitializeTunnelCache初始化之通道快取的指標。

DirectoryKey

目錄的索引鍵值,其中包含正在建立或重新命名的檔案。

[in] Name

Unicode 字串的指標,其中包含要重新命名或建立之檔案的新名稱。

[out] ShortName

呼叫端配置的 Unicode 字串指標,以接收通道檔案的簡短名稱。 此字串必須足夠長,才能保存完整的 8.3 檔名。 (不同於 LongNameShortName 不會動態成長。

[out] LongName

呼叫端配置的 Unicode 字串指標,以接收通道檔案的長名稱。 如果此字串不夠大而無法保存通道名稱,FsRtlFindInTunnelCache 以較大的系統配置字串取代它。 如果配置這類字串,呼叫端會負責偵測此案例,並釋放新的系統配置字串,以及原始呼叫端配置的字串。

[in, out] DataLength

在輸入時,這是變數的指標,可指定 Data所指向之緩衝區的長度。 在輸出中,相同的變數會接收寫入緩衝區之數據的位元組長度。

[out] Data

呼叫端配置的緩衝區指標,以接收通道快取中找到的數據。

傳回值

如果通道快取中找到相符的專案,FsRtlFindInTunnelCache 會傳回 TRUE,否則為 FALSE。

言論

當檔名新增至要建立或重新命名之檔案的目錄時,文件系統可以呼叫 FsRtlFindInTunnelCacheFsRtlFindInTunnelCache 會搜尋通道快取中 符合 dirKeyName的專案。 如果找到其中一個,FsRtlFindInTunnelCache 擷取快取的資訊。

比對的執行方式如下:

  • DirKey 的值會與項目的目錄索引鍵進行比較。 (這是傳遞至 FsRtlAddToTunnelCacheDirectoryKey 值。

  • 如果在呼叫 FsRtlAddToTunnelCache時,KeyByShortName 設為 TRUE,Name 所指向的字元串會與通道檔案的簡短名稱進行比較。 否則,它會與長名稱進行比較。

DataLength 所指向之緩衝區長度變數的值 必須大於或等於通道快取專案中所儲存數據的位元組長度。

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

要求

要求 價值
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING