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 |