Partager via


FsRtlFindInTunnelCache, fonction (ntifs.h)

La routine FsRtlFindInTunnelCache recherche une entrée correspondante dans le cache de tunnel qui correspond au nom spécifié.

Syntaxe

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

Paramètres

[in] Cache

Pointeur vers un cache de tunnel initialisé par FsRtlInitializeTunnelCache.

DirectoryKey

Valeur de clé du répertoire contenant le fichier en cours de création ou de renommage.

[in] Name

Pointeur vers une chaîne Unicode contenant le nouveau nom du fichier qui est renommé ou créé.

[out] ShortName

Pointeur vers une chaîne Unicode allouée par l’appelant pour recevoir le nom court du fichier tunnelisé. Cette chaîne doit être suffisamment longue pour contenir un nom de fichier 8.3 complet. (Contrairement à LongName, shortName n’est pas cultivé dynamiquement.)

[out] LongName

Pointeur vers une chaîne Unicode allouée par l’appelant pour recevoir le nom long du fichier tunnelisé. Si cette chaîne n’est pas suffisamment grande pour contenir le nom tunnelisé, FsRtlFindInTunnelCache la remplace par une chaîne allouée par un système plus volumineux. Si une telle chaîne est allouée, l’appelant est chargé de détecter ce cas et de libérer la nouvelle chaîne allouée par le système, ainsi que la chaîne allouée par l’appelant d’origine.

[in, out] DataLength

Lors de l’entrée, il s’agit d’un pointeur vers une variable qui spécifie la longueur de la mémoire tampon pointée par Data. En sortie, la même variable reçoit la longueur en octets des données écrites dans la mémoire tampon.

[out] Data

Pointeur vers une mémoire tampon allouée par l’appelant pour recevoir les données trouvées dans le cache du tunnel.

Valeur de retour

FsRtlFindInTunnelCache retourne TRUE si une entrée correspondante est trouvée dans le cache de tunnel, FALSE sinon.

Remarques

Les systèmes de fichiers peuvent appeler FsRtlFindInTunnelCache lorsqu’un nom de fichier est ajouté à un répertoire pour un fichier créé ou renommé. FsRtlFindInTunnelCache recherche dans le cache de tunnel une entrée qui correspond à DirKey et Nom. Si l’un est trouvé, FsRtlFindInTunnelCache récupère les informations mises en cache.

La correspondance est effectuée comme suit :

  • La valeur de DirKey est comparée à la clé de répertoire de l’entrée. (Il s’agit de la valeur directoryKey qui a été passée à FsRtlAddToTunnelCache.)

  • Si KeyByShortName a été défini sur TRUE dans l’appel à FsRtlAddToTunnelCache, la chaîne pointée par Name est comparée au nom court du fichier tunnelé. Sinon, il est comparé au nom long.

La valeur de la variable de longueur de mémoire tampon pointée par DataLength doit être supérieure ou égale à la longueur en octets des données stockées dans l’entrée du cache de tunnel.

L’appelant doit synchroniser cet appel avec FsRtlDeleteTunnelCache. En d’autres termes, un système de fichiers doit s’assurer qu’il n’appelle pas FsRtlFindInTunnelCache et FsRtlDeleteTunnelCache en même temps à partir de différents threads.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING