FsRtlFindInTunnelCache-Funktion (ntifs.h)

Die FsRtlFindInTunnelCache-Routine sucht im Tunnelcache nach einem übereinstimmenden Eintrag, der dem angegebenen Namen entspricht.

Syntax

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

Parameter

[in] Cache

Zeiger auf einen Tunnelcache, der von FsRtlInitializeTunnelCache initialisiert wurde.

DirectoryKey

Schlüsselwert des Verzeichnisses, das die Datei enthält, die erstellt oder umbenannt wird.

[in] Name

Zeiger auf eine Unicode-Zeichenfolge, die den neuen Namen für die Datei enthält, die umbenannt oder erstellt wird.

[out] ShortName

Zeiger auf eine vom Aufrufer zugewiesene Unicode-Zeichenfolge, um den Kurznamen der getunnelten Datei zu erhalten. Diese Zeichenfolge muss lang genug sein, um einen vollständigen 8.3-Dateinamen zu enthalten. (Im Gegensatz zu LongName wird ShortName nicht dynamisch vergrößert.)

[out] LongName

Zeiger auf eine vom Aufrufer zugewiesene Unicode-Zeichenfolge, um den langen Namen der getunnelten Datei zu empfangen. Wenn diese Zeichenfolge nicht groß genug ist, um den Getunnelten Namen zu enthalten, ersetzt FsRtlFindInTunnelCache sie durch eine größere vom System zugewiesene Zeichenfolge. Wenn eine solche Zeichenfolge zugeordnet ist, ist der Aufrufer dafür verantwortlich, diesen Fall zu erkennen und die neue systemseitig zugeordnete Zeichenfolge sowie die ursprüngliche vom Aufrufer zugewiesene Zeichenfolge frei zu geben.

[in, out] DataLength

Bei der Eingabe ist dies ein Zeiger auf eine Variable, die die Länge des Puffers angibt, auf den datenzeigen. Bei der Ausgabe empfängt dieselbe Variable die Länge der in den Puffer geschriebenen Daten in Byte.

[out] Data

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, um die im Tunnelcache gefundenen Daten zu empfangen.

Rückgabewert

FsRtlFindInTunnelCache gibt TRUE zurück, wenn ein übereinstimmenden Eintrag im Tunnelcache gefunden wird, andernfalls FALSE.

Hinweise

Dateisysteme können FsRtlFindInTunnelCache aufrufen, wenn einem Verzeichnis für eine Datei, die erstellt oder umbenannt wird, ein Dateiname hinzugefügt wird. FsRtlFindInTunnelCache durchsucht den Tunnelcache nach einem Eintrag, der DirKey und Name entspricht. Wenn eine gefunden wird, ruft FsRtlFindInTunnelCache die zwischengespeicherten Informationen ab.

Die Übereinstimmung wird wie folgt ausgeführt:

  • Der Wert von DirKey wird mit dem Verzeichnisschlüssel des Eintrags verglichen. (Dies ist der DirectoryKey-Wert , der an FsRtlAddToTunnelCache übergeben wurde.)

  • Wenn KeyByShortName im Aufruf von FsRtlAddToTunnelCache auf TRUE festgelegt wurde, wird die Zeichenfolge, auf die mit Name verwiesen wird, mit dem Kurznamen der getunnelten Datei verglichen. Andernfalls wird er mit dem langen Namen verglichen.

Der Wert der Pufferlängenvariable, auf die von DataLength verwiesen wird, muss größer oder gleich der Länge in Bytes der im Tunnelcacheeintrag gespeicherten Daten sein.

Der Aufrufer muss diesen Aufruf mit FsRtlDeleteTunnelCache synchronisieren. Anders ausgedrückt: Ein Dateisystem muss sicherstellen, dass fsRtlFindInTunnelCache und FsRtlDeleteTunnelCache nicht gleichzeitig aus verschiedenen Threads aufgerufen werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

FsRtlDeleteTunnelCache

FsRtlInitializeTunnelCache

UNICODE_STRING