Condividi tramite


Reparse Point Tags

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

Quando si imposta un reparse point, è necessario contrassegnare i dati da inserire nel reparse point. Dopo aver stabilito il reparse point, una nuova operazione 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 set sovrascrive il punto reparse esistente.

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

Contenuto dei 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 analisi. I 16 bit alti hanno 12 bit riservati per uso futuro e 4 bit che indicano attributi specifici dei tag e i dati rappresentati dal punto di analisi. Nella tabella seguente vengono descritti questi bit.

Pezzo 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 Riservato; 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.

Esistono le macro seguenti per facilitare i test dei tag:

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

Di seguito sono riportati i valori predefiniti dei 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 Installable File System (IFS) Kit.