Étiquettes de point d’analyse

Chaque point d’analyse a une balise d’identificateur qui vous permet de différencier efficacement les différents types de points d’analyse, sans avoir à examiner les données définies par l’utilisateur dans le point d’analyse. Le système utilise un ensemble de balises prédéfinies et une plage de balises réservées à Microsoft. Si vous utilisez l’une des balises réservées lors de la définition d’un point d’analyse, l’opération échoue. Les balises non incluses dans ces plages ne sont pas réservées et sont disponibles pour votre application.

Lorsque vous définissez un point d’analyse, vous devez baliser les données à placer dans le point d’analyse. Une fois le point d’analyse établi, une nouvelle opération de jeu échoue si la balise des nouvelles données ne correspond pas à la balise des données existantes. Si les balises correspondent, l’opération set remplace le point d’analyse existant.

Pour récupérer la balise de point d’analyse, utilisez la fonction FindFirstFile . Si le membre dwFileAttributes inclut l’attribut FILE_ATTRIBUTE_REPARSE_POINT , le membre dwReserved0 spécifie le point d’analyse.

Contenu de la balise

Les balises d’analyse sont stockées en tant que valeurs DWORD . Les bits définissent certains attributs, comme illustré dans le diagramme suivant.

   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  +-+-+-+-+-----------------------+-------------------------------+
  |M|R|N|R|     Reserved bits     |      Reparse tag value        |
  +-+-+-+-+-----------------------+-------------------------------+

Les 16 bits inférieurs déterminent le type de point d’analyse. Les 16 bits élevés ont 12 bits réservés pour une utilisation future et 4 bits qui désignent des attributs spécifiques des balises et des données représentées par le point d’analyse. Le tableau suivant décrit ces bits.

bit Description
M Microsoft bit. Si ce bit est défini, la balise appartient à Microsoft. Toutes les autres balises doivent utiliser zéro pour ce bit.
R Réservés au; doit être égal à zéro pour toutes les balises non-Microsoft.
N Nommez un bit de substitution. Si ce bit est défini, le fichier ou le répertoire représente une autre entité nommée dans le système.

Les macros suivantes existent pour faciliter le test des balises :

Chaque macro retourne une valeur différente de zéro si le bit associé est défini.

Voici les valeurs de balise d’analyse prédéfinies de Microsoft . ils sont définis dans WinNT.h :

  • IO_REPARSE_TAG_AF_UNIX
  • IO_REPARSE_TAG_APPEXECLINK
  • IO_REPARSE_TAG_CLOUD
  • IO_REPARSE_TAG_CLOUD_1
  • IO_REPARSE_TAG_CLOUD_2
  • IO_REPARSE_TAG_CLOUD_3
  • IO_REPARSE_TAG_CLOUD_4
  • IO_REPARSE_TAG_CLOUD_5
  • IO_REPARSE_TAG_CLOUD_6
  • IO_REPARSE_TAG_CLOUD_7
  • IO_REPARSE_TAG_CLOUD_8
  • IO_REPARSE_TAG_CLOUD_9
  • IO_REPARSE_TAG_CLOUD_A
  • IO_REPARSE_TAG_CLOUD_B
  • IO_REPARSE_TAG_CLOUD_C
  • IO_REPARSE_TAG_CLOUD_D
  • IO_REPARSE_TAG_CLOUD_E
  • IO_REPARSE_TAG_CLOUD_F
  • IO_REPARSE_TAG_CLOUD_MASK
  • IO_REPARSE_TAG_CSV
  • IO_REPARSE_TAG_DEDUP
  • IO_REPARSE_TAG_DFS
  • IO_REPARSE_TAG_DFSR
  • IO_REPARSE_TAG_FILE_PLACEHOLDER
  • IO_REPARSE_TAG_GLOBAL_REPARSE
  • IO_REPARSE_TAG_HSM
  • IO_REPARSE_TAG_HSM2
  • IO_REPARSE_TAG_MOUNT_POINT
  • IO_REPARSE_TAG_NFS
  • IO_REPARSE_TAG_ONEDRIVE
  • IO_REPARSE_TAG_PROJFS
  • IO_REPARSE_TAG_PROJFS_TOMBSTONE
  • IO_REPARSE_TAG_SIS
  • IO_REPARSE_TAG_STORAGE_SYNC
  • IO_REPARSE_TAG_SYMLINK
  • IO_REPARSE_TAG_UNHANDLED
  • IO_REPARSE_TAG_WCI
  • IO_REPARSE_TAG_WCI_1
  • IO_REPARSE_TAG_WCI_LINK
  • IO_REPARSE_TAG_WCI_LINK_1
  • IO_REPARSE_TAG_WCI_TOMBSTONE
  • IO_REPARSE_TAG_WIM
  • IO_REPARSE_TAG_WOF

Pour garantir l’unicité des balises, Microsoft fournit un mécanisme de distribution des nouvelles étiquettes. Pour plus d’informations, consultez le kit Ifs (Installable File System).