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).