Funzione FsRtlFindInTunnelCache (ntifs.h)

La routine FsRtlFindInTunnelCache cerca una voce corrispondente nella cache del tunnel che corrisponde al nome specificato.

Sintassi

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

Parametri

[in] Cache

Puntatore a una cache del tunnel inizializzata da FsRtlInitializeTunnelCache.

DirectoryKey

Valore della chiave della directory contenente il file che viene creato o rinominato.

[in] Name

Puntatore a una stringa Unicode contenente il nuovo nome per il file da rinominare o creare.

[out] ShortName

Puntatore a una stringa Unicode allocata dal chiamante per ricevere il nome breve del file sottoposto a tunneling. Questa stringa deve essere sufficientemente lunga da contenere un nome di file completo 8.3. A differenza di LongName, ShortName non viene cresciuto dinamicamente.

[out] LongName

Puntatore a una stringa Unicode allocata dal chiamante per ricevere il nome lungo del file sottoposto a tunneling. Se questa stringa non è sufficientemente grande da contenere il nome del tunneling, FsRtlFindInTunnelCache lo sostituisce con una stringa allocata dal sistema più grande. Se tale stringa viene allocata, il chiamante è responsabile del rilevamento di questo caso e della liberazione della nuova stringa allocata dal sistema, nonché della stringa allocata dal chiamante originale.

[in, out] DataLength

In input, si tratta di un puntatore a una variabile che specifica la lunghezza del buffer a cui punta Dati. Nell'output, la stessa variabile riceve la lunghezza in byte dei dati scritti nel buffer.

[out] Data

Puntatore a un buffer allocato dal chiamante per ricevere i dati trovati nella cache del tunnel.

Valore restituito

FsRtlFindInTunnelCache restituisce TRUE se nella cache del tunnel viene trovata una voce corrispondente, FALSE in caso contrario.

Commenti

I file system possono chiamare FsRtlFindInTunnelCache quando un nome file viene aggiunto a una directory per un file che viene creato o rinominato. FsRtlFindInTunnelCache cerca nella cache del tunnel una voce corrispondente a DirKey e Name. Se ne viene trovato uno, FsRtlFindInTunnelCache recupera le informazioni memorizzate nella cache.

La corrispondenza viene eseguita come segue:

  • Il valore di DirKey viene confrontato con la chiave di directory della voce. Si tratta del valore DirectoryKey passato a FsRtlAddToTunnelCache.

  • Se KeyByShortName è stato impostato su TRUE nella chiamata a FsRtlAddToTunnelCache, la stringa a cui punta name viene confrontata con il nome breve del file sottoposto a tunneling. In caso contrario, viene confrontato con il nome lungo.

Il valore della variabile di lunghezza del buffer a cui punta DataLength deve essere maggiore o uguale alla lunghezza in byte dei dati archiviati nella voce della cache del tunnel.

Il chiamante è necessario per sincronizzare questa chiamata con FsRtlDeleteTunnelCache. In altre parole, un file system deve garantire che non chiami FsRtlFindInTunnelCache e FsRtlDeleteTunnelCache contemporaneamente da thread diversi.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Vedi anche

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING