Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
FsRtlAddToTunnelCache
Collapse the table of content
Expand the table of content

FsRtlAddToTunnelCache routine

The FsRtlAddToTunnelCache routine caches a file name that is removed from a directory when a file is renamed or deleted.

Syntax


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
);

Parameters

Cache [in]

Pointer to a tunnel cache initialized by FsRtlInitializeTunnelCache.

DirectoryKey [in]

Key value of the directory containing the file that is being deleted or renamed. The directory key is a unique unsigned 64-bit identifier that is generated and assigned to the directory by the file system.

ShortName [in]

Unicode string containing the short (8.3) name for the file. If KeyByShortName is FALSE, ShortName is optional.

LongName [in]

Unicode string containing the long name for the file. A long file name is a name for a file or directory that exceeds the standard 8.3 file name format. If KeyByShortName is TRUE, LongName is optional.

KeyByShortName [in]

Set to TRUE if the file name to be deleted from the directory is the short name for the file, FALSE if it is the long name.

DataLength [in]

Length in bytes of the information to be stored in the tunnel cache entry for this file. The value of this parameter is file-system-specific, but it must be the same for all entries in the tunnel cache.

Data [in]

Pointer to a buffer that contains file-system-specific information to be stored in the tunnel cache entry for this file.

Return value

None

Remarks

When a file name is removed from a directory (for a file that is being renamed or deleted), the file system can cache the file name by calling FsRtlAddToTunnelCache. The purpose of the tunnel cache is to propagate file properties if a new file is created that has the same long or short name as the file just deleted or renamed.

FsRtlAddToTunnelCache creates a new entry that contains the specified file name and directory key, and adds the entry to the tunnel cache for the mounted volume where the file is being removed or deleted. This entry can also contain a fixed-size data packet of file-system-specific information for the file.

The caller is required to synchronize this call against FsRtlDeleteTunnelCache. In other words, a file system must ensure that it does not call FsRtlAddToTunnelCache and FsRtlDeleteTunnelCache at the same time from different threads.

For more information about file name tunneling, see Microsoft Knowledge Base Article 172190.

Requirements

Target platform

Universal

Header

Ntifs.h (include Ntifs.h)

Library

NtosKrnl.lib

DLL

NtosKrnl.exe

IRQL

<= APC_LEVEL

See also

FsRtlDeleteKeyFromTunnelCache
FsRtlDeleteTunnelCache
FsRtlInitializeTunnelCache
UNICODE_STRING

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft