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。 换句话说,文件系统必须确保它不会从不同的线程同时调用 FsRtlAddToTunnelCacheFsRtlDeleteTunnelCache

有关文件名隧道的详细信息,请参阅 Microsoft 知识库文章 172190

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

FsRtlDeleteKeyFromTunnelCache

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING