Tags voor reparsepunten
Elk reparsepunt heeft een id-tag, zodat u efficiënt onderscheid kunt maken tussen de verschillende typen reparsepunten, zonder dat u de door de gebruiker gedefinieerde gegevens in het reparsepunt hoeft te onderzoeken. Het systeem maakt gebruik van een set vooraf gedefinieerde tags en een reeks tags die zijn gereserveerd voor Microsoft. Als u een van de gereserveerde tags gebruikt bij het instellen van een reparsepunt, mislukt de bewerking. Tags die niet in deze bereiken zijn opgenomen, zijn niet gereserveerd en zijn beschikbaar voor uw toepassing.
Wanneer u een reparsepunt instelt, moet u de gegevens taggen die in het reparsepunt moeten worden geplaatst. Nadat het reparsepunt tot stand is gebracht, mislukt een nieuwe setbewerking als de tag voor de nieuwe gegevens niet overeenkomt met de tag voor de bestaande gegevens. Als de tags overeenkomen, overschrijft de setbewerking het bestaande reparsepunt.
Als u de reparsepunttag wilt ophalen, gebruikt u de functie FindFirstFile. Als het dwFileAttributes-lid het kenmerk FILE_ATTRIBUTE_REPARSE_POINT bevat, geeft het dwReserved0 lid het reparsepunt op.
Inhoud taggen
Reparsetags worden opgeslagen als DWORD- waarden. De bits definiëren bepaalde kenmerken, zoals wordt weergegeven in het volgende 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 lage 16 bits bepalen het soort reparsepunt. De hoge 16 bits hebben 12 bits gereserveerd voor toekomstig gebruik en 4 bits die specifieke kenmerken van de tags en de gegevens aangeven die worden vertegenwoordigd door het reparsepunt. In de volgende tabel worden deze bits beschreven.
Bit | Beschrijving |
---|---|
M | Microsoft bit. Als deze bit is ingesteld, is de tag eigendom van Microsoft. Alle andere tags moeten nul gebruiken voor deze bit. |
R | Gereserveerd; moet nul zijn voor alle niet-Microsoft-tags. |
N | Naam surrogaat bit. Als deze bit is ingesteld, vertegenwoordigt het bestand of de map een andere benoemde entiteit in het systeem. |
De volgende macro's bestaan om u te helpen bij het testen van tags:
Elke macro retourneert een niet-nulwaarde als de bijbehorende bit is ingesteld.
Hieronder vindt u de vooraf gedefinieerde codewaarden van Microsoft voor reparse; ze zijn gedefinieerd 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
Om ervoor te zorgen dat tags uniek zijn, biedt Microsoft een mechanisme voor het distribueren van nieuwe tags. Zie de Installable File System (IFS) Kitvoor meer informatie.