Tag punto reparse

Ogni punto di riparse ha un tag identificatore in modo che sia possibile distinguere in modo efficiente tra i diversi tipi di punti reparse, senza dover esaminare i dati definiti dall'utente nel punto di ripristino. Il sistema usa un set di tag predefiniti e un intervallo di tag riservati a Microsoft. Se si usa uno dei tag riservati quando si imposta un punto di ripristino, l'operazione ha esito negativo. I tag non inclusi in questi intervalli non sono riservati e sono disponibili per l'applicazione.

Quando si imposta un punto di ripristino, è necessario contrassegnare i dati da inserire nel punto di ripristino. Dopo aver stabilito il punto di ripristino, una nuova operazione di set ha esito negativo se il tag per i nuovi dati non corrisponde al tag per i dati esistenti. Se i tag corrispondono, l'operazione impostata sovrascrive il punto di ripristino esistente.

Per recuperare il tag del punto di reparse, usare la funzione FindFirstFile . Se il membro dwFileAttributes include l'attributo FILE_ATTRIBUTE_REPARSE_POINT , il membro dwReserved0 specifica il punto di ripristino.

Contenuto tag

I tag reparse vengono archiviati come valori DWORD . I bit definiscono determinati attributi, come illustrato nel diagramma seguente.

   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        |
  +-+-+-+-+-----------------------+-------------------------------+

I 16 bit bassi determinano il tipo di punto di riparazione. Gli alti 16 bit hanno 12 bit riservati per l'uso futuro e 4 bit che indicano attributi specifici dei tag e i dati rappresentati dal punto di ripristino. La tabella seguente descrive questi bit.

bit Descrizione
M Bit Microsoft. Se questo bit è impostato, il tag è di proprietà di Microsoft. Tutti gli altri tag devono usare zero per questo bit.
R Riservati; deve essere zero per tutti i tag non Microsoft.
N Nome surrogato bit. Se questo bit è impostato, il file o la directory rappresenta un'altra entità denominata nel sistema.

Le macro seguenti esistono per assistenza nei tag di test:

Ogni macro restituisce un valore diverso da zero se il bit associato è impostato.

Di seguito sono riportati i valori predefiniti del tag reparse di Microsoft; sono definiti in 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

Per garantire l'univocità dei tag, Microsoft fornisce un meccanismo per distribuire nuovi tag. Per altre informazioni, vedere il Kit ifS (Installable File System).