FltTagFile-Funktion (fltkernel.h)

FltTagFile legt ein Reparse-Tag für eine Datei oder ein Verzeichnis fest.

Syntax

NTSTATUS FLTAPI FltTagFile(
  [in]           PFLT_INSTANCE InitiatingInstance,
  [in]           PFILE_OBJECT  FileObject,
  [in]           ULONG         FileTag,
  [in, optional] GUID          *Guid,
  [in]           PVOID         DataBuffer,
  [in]           USHORT        DataBufferLength
);

Parameter

[in] InitiatingInstance

Undurchsichtiger instance Zeiger für den Minifiltertreiber instance, der diese E/A-Anforderung initiiert hat. Dieser Parameter ist erforderlich und darf nicht NULL sein.

[in] FileObject

Zeiger auf ein 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.

[in] FileTag

Punkttag neu analysieren. Wenn ein vorhandenes Analysetag geändert wird, muss das in diesem Parameter angegebene Tag mit dem Tag des zu ändernden Analysepunkts übereinstimmen.

[in, optional] Guid

GUID, die den Typ des Analysepunkts eindeutig identifiziert. Wenn FileTag kein 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.

[in] DataBuffer

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

[in] DataBufferLength

Größe des Puffers, auf den DataBuffer verweist, in Bytes.

Rückgabewert

FltTagFile gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES
Bei FltTagFileEx ist ein Poolzuordnungsfehler aufgetreten. Dies ist ein Fehlercode.
STATUS_INVALID_DEVICE_REQUEST
Das Dateisystem unterstützt keine Analysepunkte. Dies ist ein Fehlercode.
STATUS_INVALID_PARAMETER
FileTag ist kein Microsoft-Tag, und NULL wurde für Guid angegeben. Dies ist ein Fehlercode.
STATUS_IO_REPARSE_TAG_MISMATCH
Das vom Aufrufer angegebene Reparse-Tag stimmte nicht mit dem Tag des zu ändernden Analysepunkts überein. Dies ist ein Fehlercode.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
Die vom Aufrufer angegebene Analyse-GUID stimmte nicht mit der GUID des zu ändernden Analysepunkts überein. Dies ist ein Fehlercode.

Hinweise

Minifiltertreiber sollten FltTagFile anstelle von FSCTL_SET_REPARSE_POINT verwenden, um einen Analysepunkt festzulegen.

Nicht alle Dateisysteme unterstützen Analysepunkte. Das NTFS-Dateisystem unterstützt sie; das FAT-Dateisystem 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
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Weitere Informationen

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFileEx

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER