Freigeben über


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

Weitere Informationen

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER