Referenspunkttaggar
Varje referenspunkt har en identifierartagg så att du effektivt kan skilja mellan de olika typerna av referenspunkter, utan att behöva undersöka användardefinierade data i referenspunkten. Systemet använder en uppsättning fördefinierade taggar och ett antal taggar som är reserverade för Microsoft. Om du använder någon av de reserverade taggarna när du anger en referenspunkt misslyckas åtgärden. Taggar som inte ingår i dessa intervall är inte reserverade och är tillgängliga för ditt program.
När du anger en referenspunkt måste du tagga data som ska placeras i referenspunkten. När referenspunkten har upprättats misslyckas en ny uppsättningsåtgärd om taggen för de nya data inte matchar taggen för befintliga data. Om taggarna matchar skriver den angivna åtgärden över den befintliga referenspunkten.
Om du vill hämta taggen för referenspunkt använder du funktionen FindFirstFile. Om dwFileAttributes medlem innehåller attributet FILE_ATTRIBUTE_REPARSE_POINT anger dwReserved0 medlem referenspunkten.
Tagginnehåll
Referenstaggar lagras som DWORD- värden. Bitarna definierar vissa attribut, enligt följande diagram.
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 |
+-+-+-+-+-----------------------+-------------------------------+
De låga 16 bitarna avgör vilken typ av referenspunkt. De höga 16 bitarna har 12 bitar reserverade för framtida användning och 4 bitar som anger specifika attribut för taggarna och de data som representeras av referenspunkten. I följande tabell beskrivs dessa bitar.
Bit | Beskrivning |
---|---|
M | Microsoft-bit. Om den här biten anges ägs taggen av Microsoft. Alla andra taggar måste använda noll för den här biten. |
R | Reserverad; måste vara noll för alla taggar som inte kommer från Microsoft. |
N | Namnge surrogatbiten. Om den här biten anges representerar filen eller katalogen en annan namngiven entitet i systemet. |
Följande makron finns för att hjälpa till med testningstaggar:
Varje makro returnerar ett icke-nollvärde om den associerade biten har angetts.
Följande är Microsofts fördefinierade taggvärden för reparse; de definieras i 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
För att säkerställa att taggarna är unika tillhandahåller Microsoft en mekanism för att distribuera nya taggar. Mer information finns i INSTALLABLE File System (IFS) Kit.