Compartir a través de


enumeración CREATE_BIND_LINK_FLAGS (bindlink.h)

Estas marcas se pueden pasar a CreateBindLink para cambiar el comportamiento predeterminado del vínculo de enlace para satisfacer las necesidades del usuario.

Syntax

typedef enum CREATE_BIND_LINK_FLAGS {
  CREATE_BIND_LINK_FLAG_NONE,
  CREATE_BIND_LINK_FLAG_READ_ONLY,
  CREATE_BIND_LINK_FLAG_MERGED
} ;

Constantes

 
CREATE_BIND_LINK_FLAG_NONE
0x00000000

No se especifican marcas de vínculo de enlace.
CREATE_BIND_LINK_FLAG_READ_ONLY
0x00000001

Los vínculos de solo lectura son vínculos de enlace en los que los usuarios del sistema no pueden realizar cambios en los archivos que residen en la ruta de acceso de respaldo si se accede a ellos a través de la ruta de acceso virtual. Esto significa que un usuario con permiso para modificar un archivo en la ruta de acceso de respaldo todavía puede modificar ese archivo si accede a él a través de la ruta de acceso de respaldo, pero no si accede a él a través de la ruta de acceso virtual. Normalmente, los permisos de la ruta de acceso de respaldo se aplican como tal cuando se accede a la ruta de acceso virtual correspondiente, pero cuando se usa READ_ONLY marca se enmascaran los permisos de "escritura". Esto garantiza que las aplicaciones vean que el archivo está READ_ONLY.

Tenga en cuenta que la restricción de solo lectura solo se aplica a los archivos que residen en la ruta de acceso de respaldo en el disco. Si el vínculo se combina y los archivos que originalmente proceden de la ruta de acceso del directorio virtual son visibles, permanecerán modificables. Por ejemplo:

C:\Foo existe en el disco con un archivo Cat.txt
C:\Bar existe en el disco con un archivo Cow.txt

Cuando se crea un vínculo con C:\Foo como ruta de acceso virtual y C:\Bar como ruta de acceso de respaldo y el vínculo está marcado como de solo lectura y combinado, tanto Cat.txt como Cow.txt estarán visibles en C:\Foo, sin embargo, Cat.txt será modificable mientras Cow.txt no se podrá modificar.
CREATE_BIND_LINK_FLAG_MERGED
0x00000002

Un vínculo combinado es como un vínculo de sombra, excepto que el contenido existente de la ruta de acceso virtual se combina con la ruta de acceso de respaldo.

Vamos a considerar el ejemplo anterior para el vínculo de sombra una vez más, con la adición de esta marca. Por ejemplo:

- C:\Foo existe en el disco con dos archivos Cat.txt y Dog.txt
- C:\Bar existe en el disco con dos archivos Cow.txt y Mouse.txt

Cuando se crea un vínculo con C:\Foo como ruta de acceso virtual y C:\Bar como ruta de acceso de respaldo con la marca CREATE_BIND_LINK_FLAG_MERGED, la ruta de acceso C:\Foo mostrará Cat.txt, Dog.txt, Cow.txt y Mouse.txt.

Tenga en cuenta que los vínculos combinados solo se aplican cuando la ruta de acceso virtual es un directorio. En el caso de que un archivo aparezca tanto en la ruta de acceso de respaldo como en la ruta de acceso virtual, el archivo de la ruta de acceso de respaldo tiene prioridad (es decir, el archivo de la ruta de acceso virtual está enmascarado). Esto se aplica de forma recursiva a todos los directorios de la ruta de acceso virtual. Dado que la combinación se aplica a los directorios, si virtualPath y el servidor de respaldo tienen un directorio con el mismo nombre en el mismo nivel, el directorio se combinará como resultado del vínculo. Si el vínculo no era un vínculo combinado, el directorio de la ruta de acceso de respaldo tendrá prioridad e invalidará el directorio en virtualPath. Si se creó un archivo en la ruta de acceso combinada cuando exista el vínculo combinado, se creará físicamente en la ruta de acceso de respaldo (como sucede con cualquier vínculo de enlace) y reemplazará un archivo con el mismo nombre en virtualPath.

Consideremos las siguientes estructuras de directorio:

- c:\Foo\Sub\Foo_sub.txt
- c:\Bar\Sub\Bar_sub.txt

Y dos vínculos diferentes:

- {c:\Foo está vinculado a c:\Bar WITHOUT merge}. En este caso, c:\Foo\Sub solo mostrará Bar_sub.txt.
- {c:\Foo está vinculado a c:\Bar WITH merge}. En este caso, c:\Foo\Sub mostrará tanto Foo_sub.txt como Bar_sub.txt.

Dado que los vínculos de enlace son vínculos basados en rutas de acceso, si un archivo se reemplaza, modifica o elimina o vuelve a crear en la ruta de acceso de respaldo después de crear el vínculo, la ruta de acceso virtual apuntará al archivo que existe en el momento en que se sigue el vínculo. Esto sucede porque el vínculo se resuelve en el momento en que se abre un archivo. En consecuencia, si un archivo de la ruta de acceso de respaldo enmascaraba un archivo en la ruta de acceso virtual debido al vínculo y si se eliminó el archivo en la ruta de acceso de respaldo, una apertura posterior abrirá el archivo en la ruta de acceso virtual.

Requisitos

Requisito Valor
Header bindlink.h

Consulte también

CreateBindLink