FltTagFileEx-Funktion (fltkernel.h)
FltTagFileEx legt einen Analysepunkt für eine Datei oder ein Verzeichnis fest.
Syntax
NTSTATUS FLTAPI FltTagFileEx(
PFLT_INSTANCE InitiatingInstance,
PFILE_OBJECT FileObject,
ULONG FileTag,
GUID *Guid,
PVOID DataBuffer,
USHORT DataBufferLength,
ULONG ExistingFileTag,
GUID *ExistingGuid,
ULONG Flags
);
Parameter
InitiatingInstance
Undurchsichtiger Zeiger auf den Minifiltertreiber instance, der diese E/A-Anforderung initiiert hat. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileObject
Zeiger auf das Dateiobjekt für die Datei oder das Verzeichnis, für das ein Analysepunkt festgelegt werden soll. Das Dateiobjekt muss für FILE_WRITE_DATA Zugriff geöffnet werden. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileTag
Punkttag neu analysieren. Kann einer der in ntifs.h definiertenIO_REPARSE_TAG_XXX-Werte sein.
Guid
GUID, die den Analysepunkt eindeutig identifiziert. Wenn FileTag ein Nicht-Microsoft-Tag ist, ist dieser Parameter erforderlich und darf nicht NULL sein. Wenn ein vorhandenes Analysetag geändert wird, muss die in diesem Parameter angegebene GUID mit der GUID des zu ändernden Analysepunkts übereinstimmen.
DataBuffer
Zeiger auf einen Puffer, der benutzerdefinierte Daten für den Analysepunkt enthält.
DataBufferLength
Größe des Puffers, auf den DataBuffer verweist, in Bytes.
ExistingFileTag
Vorhandenes Tag in der Datei, wenn das Tag ersetzt werden muss. Dieser Parameter muss auf 0 festgelegt werden, um ein Reparse-Tag für eine Datei festzulegen, die noch keins enthält.
ExistingGuid
GUID, die einen vorhandenen Analysepunkt eindeutig identifiziert. Wenn ExistingFileTag ein Nicht-Microsoft-Tag ist und ungleich Null ist, darf dieser Parameter nicht NULL sein.
Flags
Gibt die in ntifs.h definierten REPARSE_DATA_BUFFER_EX_XXX-Flags an.
Rückgabewert
Diese Funktion gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie den folgenden zurück:
Code zurückgeben | BESCHREIBUNG |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | Der in ExistingFileTag angegebene Tagwert stimmt nicht mit dem vorhandenen Tagwert überein. |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | Für einen vorhandenen Analysepunkt mit einem Nicht-Microsoft-Tag stimmt ExistingFileTag mit dem vorhandenen Tagwert überein, aber die Guid stimmt nicht mit der vorhandenen Guid überein. |
Hinweise
Minifiltertreiber sollten FltTagFileEx anstelle von FSCTL_SET_REPARSE_POINT_EX verwenden, um einen Analysepunkt festzulegen.
Nicht alle Dateisysteme unterstützen Analysepunkte. Beispielsweise werden sie von den NTFS- und ReFS-Dateisystemen unterstützt, das FAT-Dateisystem jedoch nicht. Minifiltertreiber können ermitteln, ob ein Dateisystem Analysepunkte unterstützt, indem Sie FltQueryVolumeInformation aufrufen, FileFsAttributeInformation für den FsInformation-Parameter angeben und das FILE_SUPPORTS_REPARSE_POINTS Bitflag in der zurückgegebenen FILE_FS_ATTRIBUTE_INFORMATION-Struktur untersuchen.
Um einen vorhandenen Analysepunkt zu entfernen, rufen Sie FltUntagFile auf.
Weitere Informationen zu Analysepunkten finden Sie in der Microsoft Windows SDK-Dokumentation.
Anforderungen
Anforderung | Wert |
---|---|
Header | fltkernel.h |