FLT_FILE_NAME_INFORMATION Struktur (fltkernel.h)
Die FLT_FILE_NAME_INFORMATION Struktur enthält Dateinameninformationen.
Syntax
typedef struct _FLT_FILE_NAME_INFORMATION {
USHORT Size;
FLT_FILE_NAME_PARSED_FLAGS NamesParsed;
FLT_FILE_NAME_OPTIONS Format;
UNICODE_STRING Name;
UNICODE_STRING Volume;
UNICODE_STRING Share;
UNICODE_STRING Extension;
UNICODE_STRING Stream;
UNICODE_STRING FinalComponent;
UNICODE_STRING ParentDir;
} FLT_FILE_NAME_INFORMATION, *PFLT_FILE_NAME_INFORMATION;
Angehörige
Size
Größe der FLT_FILE_NAME_INFORMATION Struktur in Byte.
NamesParsed
Bitmaske von Flags, die angeben, welche Namenskomponenten aus der Name Zeichenfolge durch FltParseFileNameInformationanalysiert wurden. Beachten Sie, dass beim Analysieren der Name Zeichenfolge FltParseFileNameInformation dieses Flag für jede Komponente festlegt, ob die Komponente in der Zeichenfolge vorhanden ist. Diese Werte können mithilfe des OR-Operators kombiniert werden.
Flagge | Bestandteil |
---|---|
FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT | FinalComponent- |
FLTFL_FILE_NAME_PARSED_EXTENSION | Erweiterungs- |
FLTFL_FILE_NAME_PARSED_STREAM | Stream- |
FLTFL_FILE_NAME_PARSED_PARENT_DIR | ParentDir- |
Format
Format der im Name Member gespeicherten Namensinformationen. Dieses Element kann einer der folgenden Werte sein: (Eine Erläuterung dieser Formate finden Sie im folgenden Abschnitt "Hinweise".)
Wert | Bedeutung |
---|---|
FLT_FILE_NAME_NORMALIZED | Der Name Member enthält den normalisierten Namen für die Datei. |
FLT_FILE_NAME_OPENED | Der Name Member enthält den Namen, der beim Öffnen der Datei verwendet wurde. Diese Namenszeichenfolge ist nicht normalisiert. |
FLT_FILE_NAME_SHORT | Der Name Member enthält den kurzen (8.3) Namen für die Datei. Der Kurzname für eine Datei enthält nicht den Volumenamen, den Verzeichnispfad oder den Datenstromnamen. Diese Namenszeichenfolge ist nicht normalisiert. |
Name
UNICODE_STRING Struktur, die die Dateinamenzeichenfolge enthält, die gemäß der Angabe durch das element Format formatiert ist.
Volume
UNICODE_STRING Struktur, die den volumenamen enthält, der aus der Name Zeichenfolge analysiert wird. Wenn Format- FLT_FILE_NAME_SHORT ist, ist Volume.Length Null.
Share
UNICODE_STRING Struktur, die den Netzwerkfreigabenamen enthält, der aus der Name Zeichenfolge für eine Remotedatei analysiert wird. Wenn Format- FLT_FILE_NAME_SHORT ist, ist "Share.Length"- null.
Extension
UNICODE_STRING Struktur, die die aus der Name Zeichenfolge analysierte Erweiterung enthält. Wenn keine Erweiterung gefunden wird, legt FltParseFileNameInformationExtension.Length auf Null fest.
Stream
UNICODE_STRING Struktur, die den datenstromnamen enthält, der aus der Name Zeichenfolge analysiert wird. Wenn kein Datenstromname gefunden wird oder Format- FLT_FILE_NAME_SHORT ist, legt FltParseFileNameInformation"Stream.Length" auf Null fest.
FinalComponent
UNICODE_STRING Struktur, die die endgültige Namenskomponente enthält, die aus der Name Zeichenfolge analysiert wird. Wenn kein endgültiger Komponentenname gefunden wird oder Format- FLT_FILE_NAME_SHORT ist, legt FltParseFileNameInformationFinalComponent.Length auf Null fest.
ParentDir
UNICODE_STRING Struktur, die den übergeordneten Verzeichnisnamen enthält, der aus der Name Zeichenfolge durch FltParseFileNameInformationanalysiert wird. Wenn kein übergeordneter Verzeichnisname gefunden wird oder Format- FLT_FILE_NAME_SHORT ist, legt FltParseFileNameInformationParentDir.Length auf Null fest.
Bemerkungen
Das element Name enthält einen der folgenden Elemente:
- Der normalisierte Name für die Datei
- Der geöffnete Name für die Datei
- Der Kurzname für die Datei
- Er enthält den vollständigen Verzeichnispfad für die Datei, einschließlich des Volumenamens, es sei denn, der Benutzer hat die Datei anhand der Datei-ID geöffnet, besitzt jedoch keine Traverseberechtigung für den gesamten Pfad. (Weitere Informationen finden Sie unter FltGetFileNameInformation.)
- Der Volumename ist der nichtpersistent Geräteobjektname des Volumes (z. B. "\Device\HarddiskVolume1").
- Alle Kurznamen werden auf die entsprechenden langen Namen erweitert.
- Alle nachfolgenden Zeichenfolgen ":$DATA" oder "::$DATA" werden aus dem Datenstromnamen entfernt.
- Alle Bereitstellungspunkte werden aufgelöst.
\Device\HarddiskVolume1\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Nachfolgend sehen Sie ein Beispiel für einen normalisierten Dateinamen für eine Remotedatei:
\Device\LanManRedirector\MyServer\MyShare\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Der geöffnete Name für eine Datei ist der Name, der beim Öffnen der Datei verwendet wurde. Wie der normalisierte Name enthält er den vollständigen Verzeichnispfad für die Datei, einschließlich des Volumenamens. Er unterscheidet sich von dem normalisierten Namen auf folgende Weise:
- Der Verzeichnispfad für die Datei kann kurze Namen sowie lange Namen enthalten.
- Nachfolgende Zeichenfolgen ":$DATA" und "::$DATA" werden nicht aus dem Datenstromnamen entfernt.
- Mount points are not resolved.
\Device\HarddiskVolume1\Docume~1\MyUser\MYDOCU~1\Test Results.txt:stream1:$DATA
Nachfolgend sehen Sie ein Beispiel für einen geöffneten Dateinamen für eine Remotedatei:
\Device\LanManRedirector\MyServer\MyShare\Documents and Settings\MyUser\My Documents\Test Results.txt:stream1
Der Kurzname für eine Datei ist der kurze Name (8.3) für die endgültige Komponente des Dateinamens. Da sie generiert wird, wenn die Datei geöffnet wird, steht der Kurzname für ein nicht geöffnetes Dateiobjekt nicht zur Verfügung und ist nicht im Create Dispatch -Pfad ("pre-create") verfügbar. Es ist auch nicht für NTFS-Streamdateiobjekte verfügbar. Nicht alle geöffneten Dateien haben kurze Dateinamen. Beispielsweise verfügen bei NTFS-Partitionen, bei denen die Generierung kurzer Dateinamen deaktiviert wurde, keine Dateien über kurze Dateinamen.
Nachfolgend sehen Sie ein Beispiel für einen kurzen Namen für eine Datei:
TestRe~1.txt
Um eine FLT_FILE_NAME_INFORMATION Struktur für eine Datei abzurufen, rufen Sie FltGetFileNameInformation, FltGetFileNameInformationUnsafeoder FltGetDestinationFileNameInformationauf. Diese Routinen gibt einen Zeiger auf eine im Filter-Manager befindliche FLT_FILE_NAME_INFORMATION Struktur zurück, die von allen Minifiltern gemeinsam verwendet wird.
Obwohl sie zahlreiche UNICODE_STRING Strukturen enthält, belegt die FLT_FILE_NAME_INFORMATION Struktur nicht viel Speicherplatz im Arbeitsspeicher, da alle UNICODE_STRING Strukturen in einer FLT_FILE_NAME_INFORMATION Struktur einen einzelnen Puffer teilen.
Um den Inhalt der Name Zeichenfolge zu analysieren, rufen Sie FltParseFileNameInformationauf. Diese Routine legt die Werte der Extension, Stream, FinalComponent, ParentDirund NamesParsed Member dieser Struktur fest.
Minifilter sind für das Aufrufen von FltReleaseFileNameInformation verantwortlich, um die FLT_FILE_NAME_INFORMATION Struktur freizugeben, wenn sie nicht mehr benötigt wird.
Anforderungen
Anforderung | Wert |
---|---|
Header- | fltkernel.h (include Fltkernel.h) |
Siehe auch
FltGetDestinationFileNameInformation
FltGetFileNameInformationUnsafe-