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 文件名格式的文件或目录的名称。 如果 KeyByShortName为 TRUE,则 LongName 是可选的。

[in] KeyByShortName

如果要从目录中删除的文件名是文件的短名称,则设置为 TRUE,如果文件名为长名称,FALSE

[in] DataLength

要存储在此文件的隧道缓存条目中的信息长度(以字节为单位)。 此参数的值特定于文件系统,但对于隧道缓存中的所有条目,该值必须相同。

[in] Data

指向包含要存储在此文件的隧道缓存条目中的特定于文件系统的信息的缓冲区的指针。

返回值

没有

言论

从目录中删除文件名(对于重命名或删除的文件),文件系统可以通过调用 FsRtlAddToTunnelCache来缓存文件名。 隧道缓存的目的是传播文件属性(如果创建了与刚删除或重命名的文件具有相同的长名称或短名称的新文件)。

FsRtlAddToTunnelCache 创建一个新条目,其中包含指定的文件名和目录密钥,并将条目添加到装载卷的隧道缓存中,其中要删除或删除该文件。 此条目还可以包含文件文件系统特定信息的固定大小的数据包。

调用方需要针对 FsRtlDeleteTunnelCache同步此调用。 换句话说,文件系统必须确保它不会从不同的线程同时调用 FsRtlAddToTunnelCacheFsRtlDeleteTunnelCache

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

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

FsRtlDeleteKeyFromTunnelCache

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING