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 die Minifiltertreiberinstanz, die diese E/A-Anforderung initiiert hat. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

FileObject

Zeigen Sie auf das Dateiobjekt für die Datei oder das Verzeichnis, für die ein Analysepunkt festgelegt werden soll. Das Dateiobjekt muss für FILE_WRITE_DATA Zugriff geöffnet werden. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

FileTag

Analysepunkttag. Dies kann eine der IO_REPARSE_TAG_XXX- Werte sein, die in ntifs.hdefiniert sind.

Guid

GUID, die den Analysepunkt eindeutig identifiziert. Wenn FileTag- ein Nicht-Microsoft-Tag ist, ist dieser Parameter erforderlich und kann nicht NULL-werden. Wenn ein vorhandenes Analysetag geändert wird, muss die in diesem Parameter angegebene GUID mit der GUID des analysepunkts übereinstimmen, der geändert werden soll.

DataBuffer

Zeigen Sie auf einen Puffer, der benutzerdefinierte Daten für den Analysepunkt enthält.

DataBufferLength

Größe des Puffers in Byte, auf den DataBuffer Punkte.

ExistingFileTag

Vorhandenes Tag in der Datei, wenn das Tag ersetzt werden muss. Dieser Parameter muss auf Null festgelegt werden, um ein Analysetag für eine Datei festzulegen, die noch nicht vorhanden ist.

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.hdefinierten REPARSE_DATA_BUFFER_EX_XXX- Flags an.

Rückgabewert

Diese Funktion gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert wie den folgenden zurück:

Rückgabecode Beschreibung
STATUS_IO_REPARSE_TAG_MISMATCH Der in ExistingFileTag- angegebene Tagwert stimmt nicht mit dem des vorhandenen Tagwerts überein.
STATUS_REPARSE_ATTRIBUTE_CONFLICT Für einen vorhandenen Analysepunkt mit einem Nicht-Microsoft-Tag entspricht ExistingFileTag- dem vorhandenen Tagwert, die GUID- stimmt jedoch nicht mit der vorhandenen GUID überein.

Bemerkungen

Minifiltertreiber sollten FltTagFileEx- anstelle von FSCTL_SET_REPARSE_POINT_EX verwenden, um einen Analysepunkt festzulegen.

Nicht alle Dateisysteme unterstützen Analysepunkte; Die NTFS- und ReFS-Dateisysteme unterstützen sie beispielsweise, das FAT-Dateisystem jedoch nicht. Minifiltertreiber können bestimmen, ob ein Dateisystem Analysepunkte unterstützt, indem FltQueryVolumeInformationaufgerufen wird, FileFsAttributeInformation für den FsInformation Parameter angegeben und das FILE_SUPPORTS_REPARSE_POINTS Bit-Flag in der zurückgegebenen FILE_FS_ATTRIBUTE_INFORMATION Struktur untersucht wird.

Um einen vorhandenen Analysepunkt zu entfernen, rufen Sie FltUntagFile-auf.

Weitere Informationen zu Analysepunkten finden Sie in der Dokumentation zum Microsoft Windows SDK.

Anforderungen

Anforderung Wert
Header- fltkernel.h

Siehe auch

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