Condividi tramite


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 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 che viene rinominato o creato.

[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 in modo dinamico.

[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 sottoposto a 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 Data. 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 viene trovata una voce corrispondente nella cache del tunnel, false in caso contrario.

Osservazioni

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 nel modo seguente:

  • Il valore di DirKey viene confrontato con la chiave della 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 assicurarsi che non chiami FsRtlFindInTunnelCache e FsRtlDeleteTunnelCache contemporaneamente da thread diversi.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL <= APC_LEVEL

Vedere anche

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING