Partager via


Fonction FltTagFileEx (fltkernel.h)

FltTagFileEx définit un point d’analyse sur un fichier ou un répertoire.

Syntaxe

NTSTATUS FLTAPI FltTagFileEx(
  PFLT_INSTANCE InitiatingInstance,
  PFILE_OBJECT  FileObject,
  ULONG         FileTag,
  GUID          *Guid,
  PVOID         DataBuffer,
  USHORT        DataBufferLength,
  ULONG         ExistingFileTag,
  GUID          *ExistingGuid,
  ULONG         Flags
);

Paramètres

InitiatingInstance

Pointeur opaque vers le pilote minifilter instance qui a lancé cette demande d’E/S. Ce paramètre est obligatoire et ne peut pas être NULL.

FileObject

Pointeur vers l’objet file pour le fichier ou le répertoire sur lequel définir un point d’analyse. L’objet file doit être ouvert pour un accès FILE_WRITE_DATA. Ce paramètre est obligatoire et ne peut pas être NULL.

FileTag

Balise de point d’analyse. Il peut s’agir de l’une des valeurs IO_REPARSE_TAG_XXX définies dans ntifs.h.

Guid

GUID qui identifie de manière unique le point d’analyse. Si FileTag est une balise non-Microsoft, ce paramètre est obligatoire et ne peut pas être NULL. Si une balise d’analyse existante est en cours de modification, le GUID spécifié dans ce paramètre doit correspondre au GUID du point d’analyse à modifier.

DataBuffer

Pointeur vers une mémoire tampon qui contient des données définies par l’utilisateur pour le point d’analyse.

DataBufferLength

Taille, en octets, de la mémoire tampon vers laquelle pointe DataBuffer .

ExistingFileTag

Balise existante sur le fichier si la balise doit être remplacée. Ce paramètre doit être défini sur zéro pour définir une balise d’analyse sur un fichier qui n’en a pas encore.

ExistingGuid

GUID qui identifie de manière unique un point d’analyse existant. Si ExistingFileTag est une balise non-Microsoft et n’est pas zéro, ce paramètre ne doit pas être NULL.

Flags

Spécifie les indicateurs REPARSE_DATA_BUFFER_EX_XXX définis dans ntifs.h.

Valeur retournée

Cette fonction retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_IO_REPARSE_TAG_MISMATCH La valeur de balise spécifiée dans ExistingFileTag ne correspond pas à celle de la valeur de balise existante.
STATUS_REPARSE_ATTRIBUTE_CONFLICT Pour un point d’analyse existant avec une balise non-Microsoft, ExistingFileTag correspond à la valeur de balise existante, mais le GUID ne correspond pas au GUID existant.

Remarques

Les pilotes Minifilter doivent utiliser FltTagFileEx au lieu de FSCTL_SET_REPARSE_POINT_EX pour définir un point d’analyse.

Tous les systèmes de fichiers ne prennent pas en charge les points d’analyse ; par exemple, les systèmes de fichiers NTFS et ReFS les prennent en charge, mais pas le système de fichiers FAT. Les pilotes Minifilter peuvent déterminer si un système de fichiers prend en charge les points d’analyse en appelant FltQueryVolumeInformation, en spécifiant FileFsAttributeInformation pour le paramètre FsInformation et en examinant l’indicateur de bits FILE_SUPPORTS_REPARSE_POINTS dans la structure FILE_FS_ATTRIBUTE_INFORMATION retournée.

Pour supprimer un point d’analyse existant, appelez FltUntagFile.

Pour plus d’informations sur les points d’analyse, consultez la documentation Microsoft Windows SDK.

Configuration requise

Condition requise Valeur
En-tête fltkernel.h

Voir aussi

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