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 |