FsRtlFindInTunnelCache-Funktion (ntifs.h)
Die FsRtlFindInTunnelCache Routine sucht nach einem übereinstimmenden Eintrag im Tunnelcache, 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 initialisiert durch FsRtlInitializeTunnelCache.
DirectoryKey
Schlüsselwert des Verzeichnisses, das die datei enthält, die erstellt oder umbenannt wird.
[in] Name
Zeigen Sie auf eine Unicode-Zeichenfolge, die den neuen Namen für die Datei enthält, die umbenannt oder erstellt wird.
[out] ShortName
Zeigen Sie auf eine vom Aufrufer zugewiesene Unicode-Zeichenfolge, um den kurzen Namen der tunnelierten Datei zu erhalten. Diese Zeichenfolge muss lang genug sein, um einen vollständigen 8.3-Dateinamen zu speichern. (Im Gegensatz zu LongName-wird ShortName- nicht dynamisch vergrößert.)
[out] LongName
Zeigen Sie auf eine vom Aufrufer zugewiesene Unicode-Zeichenfolge, um den langen Namen der tunnelierten Datei zu erhalten. Wenn diese Zeichenfolge nicht groß genug ist, um den tunnelierten Namen zu enthalten, FsRtlFindInTunnelCache sie durch eine größere vom System zugewiesene Zeichenfolge ersetzt. Wenn eine solche Zeichenfolge zugewiesen wird, ist der Aufrufer dafür verantwortlich, diesen Fall zu erkennen und die neue vom System zugewiesene Zeichenfolge sowie die ursprüngliche vom Aufrufer zugewiesene Zeichenfolge freizuweisen.
[in, out] DataLength
Bei eingaben ist dies ein Zeiger auf eine Variable, die die Länge des Puffers angibt, auf den Dataverweist. Bei der Ausgabe empfängt dieselbe Variable die Länge in Byte der daten, die in den Puffer geschrieben wurden.
[out] Data
Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, um die im Tunnelcache gefundenen Daten zu empfangen.
Rückgabewert
FsRtlFindInTunnelCache TRUE zurück, wenn im Tunnelcache ein übereinstimmener Eintrag gefunden wird, andernfalls FALSE.
Bemerkungen
Dateisysteme können FsRtlFindInTunnelCache- aufrufen, wenn ein Dateiname zu einem Verzeichnis für eine Datei hinzugefügt wird, die erstellt oder umbenannt wird. FsRtlFindInTunnelCache durchsucht den Tunnelcache nach einem Eintrag, der DirKey und Nameentspricht. Wenn eine gefunden wird, ruft FsRtlFindInTunnelCache die zwischengespeicherten Informationen ab.
Die Übereinstimmung wird wie folgt durchgeführt:
Der Wert DirKey wird mit dem Verzeichnisschlüssel des Eintrags verglichen. (Dies ist der DirectoryKey Wert, der an FsRtlAddToTunnelCacheübergeben wurde.)
Wenn KeyByShortName- im Aufruf von FsRtlAddToTunnelCacheauf TRUE festgelegt wurde, wird die Zeichenfolge, auf die Name verweist, mit dem Kurznamen der tunnelierten Datei verglichen. Andernfalls wird sie mit dem langen Namen verglichen.
Der Wert der Pufferlängenvariable, auf die durch DataLength- verweist, muss größer oder gleich der Länge in Bytes der Daten sein, die im Tunnelcacheeintrag gespeichert sind.
Der Aufrufer ist erforderlich, um diesen Aufruf mit FsRtlDeleteTunnelCachezu synchronisieren. Mit anderen Worten, ein Dateisystem muss sicherstellen, dass es nicht FsRtlFindInTunnelCache und FsRtlDeleteTunnelCache gleichzeitig aus verschiedenen Threads aufruft.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= APC_LEVEL |