CREATE_BIND_LINK_FLAGS énumération (bindlink.h)

Ces indicateurs peuvent être transmis à CreateBindLink pour modifier le comportement du lien de liaison par défaut en fonction des besoins de l’utilisateur.

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

Aucun indicateur de lien de liaison n’est spécifié.
CREATE_BIND_LINK_FLAG_READ_ONLY
0x00000001

Les liens en lecture seule sont des liens de liaison dans lesquels les utilisateurs du système ne peuvent pas apporter de modifications aux fichiers qui résident dans le chemin d’accès de stockage s’ils sont accessibles via le chemin virtuel. Cela signifie qu’un utilisateur autorisé à modifier un fichier sur le chemin d’accès de stockage peut toujours modifier ce fichier s’il y accède via le chemin d’accès de stockage, mais pas s’il y accède via le chemin d’accès virtuel. Normalement, les autorisations du chemin d’accès de stockage s’appliquent comme telles lorsque le chemin d’accès virtuel correspondant est accessible, mais lorsque READ_ONLY indicateur est utilisé, les autorisations « écriture » sont masquées. Cela garantit que les applications voient que le fichier est READ_ONLY.

Notez que la restriction en lecture seule s’applique uniquement aux fichiers qui résident sur le chemin d’accès de stockage sur le disque. Si le lien est fusionné et que les fichiers qui sont à l’origine du chemin du répertoire virtuel sont visibles, ils restent modifiables. Par exemple :

C :\Foo existe sur le disque avec un fichier Cat.txt
C :\Bar existe sur le disque avec un fichier Cow.txt

Lorsqu’un lien est créé avec C :\Foo comme chemin d’accès virtuel et C :\Bar comme chemin d’accès de sauvegarde et que le lien est marqué en lecture seule et fusionné, Cat.txt et Cow.txt sont visibles dans C :\Foo, mais Cat.txt sera modifiable tandis que Cow.txt ne sera pas modifiable.
CREATE_BIND_LINK_FLAG_MERGED
0x00000002

Un lien fusionné est semblable à un shadow link, sauf que le contenu existant dans le chemin d’accès virtuel est fusionné avec le chemin d’accès de stockage.

Examinons à nouveau l’exemple précédent pour le lien d’ombre, avec l’ajout de cet indicateur. Par exemple :

- C :\Foo existe sur le disque avec deux fichiers Cat.txt et Dog.txt
- C :\Bar existe sur le disque avec deux fichiers Cow.txt et Mouse.txt

Lorsqu’un lien est créé avec C :\Foo comme chemin d’accès virtuel et C :\Bar comme chemin d’accès de sauvegarde avec l’indicateur CREATE_BIND_LINK_FLAG_MERGED, le chemin D’accès C :\Foo affiche Cat.txt, Dog.txt, Cow.txt et Mouse.txt.

Notez que les liens fusionnés s’appliquent uniquement lorsque le chemin d’accès virtuel est un répertoire. Dans le cas où un fichier apparaît à la fois dans le chemin d’accès de stockage et le chemin d’accès virtuel, le fichier dans le chemin d’accès de stockage est prioritaire (c’est-à-dire que le fichier dans le chemin d’accès virtuel est masqué). Cela s’applique de manière récursive à tous les répertoires du chemin d’accès virtuel. Étant donné que la fusion s’applique aux répertoires, si virtualPath et le backingPath ont tous deux un répertoire portant le même nom au même niveau, le répertoire sera fusionné en tant que résultat du lien. Si le lien n’était pas un lien fusionné, le répertoire du chemin d’accès de stockage sera prioritaire et remplacera le répertoire dans le virtualPath. Si un fichier a été créé au niveau du chemin d’accès fusionné lorsque le lien fusionné existe, il sera créé physiquement au niveau du chemin d’accès de stockage (comme c’est le cas avec n’importe quel lien de liaison) et remplacera un fichier portant le même nom sur le virtualPath.

Examinons les structures de répertoires suivantes :

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

Et deux liens différents :

- {c :\Foo est lié à c :\Bar WITHOUT merge}. Dans ce cas, c :\Foo\Sub affiche uniquement Bar_sub.txt.
- {c :\Foo est lié à c :\Bar WITH merge}. Dans ce cas, c :\Foo\Sub affiche à la fois Foo_sub.txt et Bar_sub.txt.

Étant donné que les liens de liaison sont des liens basés sur un chemin d’accès, si un fichier est remplacé, modifié ou supprimé/recréé dans le chemin d’accès de stockage après la création du lien, le chemin d’accès virtuel pointe vers le fichier qui existe au moment où le lien est suivi. Cela se produit parce que le lien est résolu au moment de l’ouverture d’un fichier. Par conséquent, si un fichier du chemin d’accès de stockage masquait un fichier dans le chemin d’accès virtuel en raison du lien et si le fichier dans le chemin d’accès de stockage a été supprimé, une ouverture suivante ouvre le fichier dans le chemin virtuel.

Configuration requise

Condition requise Valeur
En-tête bindlink.h

Voir aussi

CreateBindLink