Etiquetas de punto de reanálisis
Cada punto de reanálisis tiene una etiqueta de identificador para que pueda diferenciar eficazmente entre los distintos tipos de puntos de reanálisis, sin tener que examinar los datos definidos por el usuario en el punto de reanálisis. El sistema usa un conjunto de etiquetas predefinidas y un intervalo de etiquetas reservadas para Microsoft. Si usa cualquiera de las etiquetas reservadas al establecer un punto de reanálisis, se produce un error en la operación. Las etiquetas no incluidas en estos intervalos no están reservadas y están disponibles para la aplicación.
Al establecer un punto de reanálisis, debe etiquetar los datos que se colocarán en el punto de reanálisis. Una vez establecido el punto de reanálisis, se produce un error en una nueva operación de conjunto si la etiqueta de los nuevos datos no coincide con la etiqueta de los datos existentes. Si las etiquetas coinciden, la operación set sobrescribe el punto de reanálisis existente.
Para recuperar la etiqueta de punto de reanálisis, use la función FindFirstFile . Si el miembro dwFileAttributes incluye el atributo FILE_ATTRIBUTE_REPARSE_POINT , el miembro dwReserved0 especifica el punto de reanálisis.
Contenido de etiquetas
Las etiquetas de reanálisis se almacenan como valores DWORD . Los bits definen determinados atributos, como se muestra en el diagrama siguiente.
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 |
+-+-+-+-+-----------------------+-------------------------------+
Los 16 bits bajos determinan el tipo de punto de reanálisis. Los 16 bits altos tienen 12 bits reservados para uso futuro y 4 bits que indican atributos específicos de las etiquetas y los datos representados por el punto de reanálisis. En la tabla siguiente se describen estos bits.
bit | Descripción |
---|---|
M | Bit de Microsoft. Si se establece este bit, la etiqueta es propiedad de Microsoft. Todas las demás etiquetas deben usar cero para este bit. |
R | Reservados; debe ser cero para todas las etiquetas que no son de Microsoft. |
N | Asignar un nombre a bit suplente. Si se establece este bit, el archivo o directorio representa otra entidad con nombre en el sistema. |
Existen las siguientes macros para ayudar en las etiquetas de prueba:
Cada macro devuelve un valor distinto de cero si se establece el bit asociado.
A continuación se muestran los valores predefinidos de etiquetas de reanálisis de Microsoft; se definen en 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
Para garantizar la unicidad de las etiquetas, Microsoft proporciona un mecanismo para distribuir nuevas etiquetas. Para obtener más información, consulte el Kit de sistema de archivos instalable (IFS).