Partager via


FltTagFile, fonction (fltkernel.h)

FltTagFile définit une balise d’analyse sur un fichier ou un répertoire.

Syntaxe

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

Paramètres

[in] InitiatingInstance

Pointeur d’instance opaque pour l’instance de pilote minifilter qui a lancé cette requête d’E/S. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] FileObject

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

[in] FileTag

Balise de point d’analyse. Si une balise d’analyse existante est modifiée, la balise spécifiée dans ce paramètre doit correspondre à la balise du point d’analyse à modifier.

[in, optional] Guid

GUID qui identifie de façon unique le type de point d’analyse. Si fileTag n’est pas une balise Microsoft, ce paramètre est obligatoire et ne peut pas être NULL. Si une balise d’analyse existante est modifiée, le GUID spécifié dans ce paramètre doit correspondre au GUID du point d’analyse à modifier.

[in] DataBuffer

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

[in] DataBufferLength

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

Valeur de retour

FltTagFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme l’une des opérations suivantes :

Retourner le code Description
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur.
STATUS_INVALID_DEVICE_REQUEST
Le système de fichiers ne prend pas en charge les points d’analyse. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
fileTag n’est pas une balise Microsoft, et NULL a été spécifiée pour guid. Il s’agit d’un code d’erreur.
STATUS_IO_REPARSE_TAG_MISMATCH
La balise d’analyse spécifiée par l’appelant ne correspondait pas à la balise du point d’analyse à modifier. Il s’agit d’un code d’erreur.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
Le GUID d’analyse spécifié par l’appelant ne correspond pas au GUID du point d’analyse à modifier. Il s’agit d’un code d’erreur.

Remarques

Les pilotes minifilter doivent utiliser FltTagFile au lieu de FSCTL_SET_REPARSE_POINT pour définir un point d’analyse.

Tous les systèmes de fichiers ne prennent pas en charge les points d’analyse. Le système de fichiers NTFS les prend en charge ; le système de fichiers FAT ne le fait pas. 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 du Kit de développement logiciel (SDK) Microsoft Windows.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

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