Freigeben über


CREATE_BIND_LINK_FLAGS-Enumeration (bindlink.h)

Diese Flags können an CreateBindLink übergeben werden, um das Standardmäßige Bindungslinkverhalten entsprechend den Anforderungen des Benutzers zu ändern.

Syntax

typedef enum CREATE_BIND_LINK_FLAGS {
  CREATE_BIND_LINK_FLAG_NONE,
  CREATE_BIND_LINK_FLAG_READ_ONLY,
  CREATE_BIND_LINK_FLAG_MERGED
} ;

Konstanten

 
CREATE_BIND_LINK_FLAG_NONE
0x00000000

Es werden keine Bindungslinkflags angegeben.
CREATE_BIND_LINK_FLAG_READ_ONLY
0x00000001

Schreibgeschützte Links sind Bindungslinks, bei denen benutzer im System daran gehindert werden, Änderungen an Dateien vorzunehmen, die sich im Sicherungspfad befinden, wenn auf sie über den virtuellen Pfad zugegriffen wird. Dies bedeutet, dass ein Benutzer mit der Berechtigung zum Ändern einer Datei im Sicherungspfad diese Datei weiterhin ändern kann, wenn er über den Sicherungspfad darauf zugreift, aber nicht, wenn er über den virtuellen Pfad darauf zugreift. Normalerweise gelten die Berechtigungen des Sicherungspfads als solche, wenn auf den entsprechenden virtuellen Pfad zugegriffen wird, aber wenn READ_ONLY Flag verwendet wird, werden die Schreibberechtigungen maskiert. Dadurch wird sichergestellt, dass Anwendungen sehen, dass die Datei READ_ONLY ist.

Beachten Sie, dass die Schreibschutzeinschränkung nur für Dateien gilt, die sich im Sicherungspfad auf dem Datenträger befinden. Wenn der Link zusammengeführt wird und Dateien, die ursprünglich aus dem pfad des virtuellen Verzeichnisses stammen, sichtbar sind, bleiben sie änderbar. Beispiel:

C:\Foo ist auf dem Datenträger mit einer Datei Cat.txt
C:\Bar ist auf dem Datenträger mit einer Datei Cow.txt

Wenn ein Link mit C:\Foo als virtuellem Pfad und C:\Bar als Sicherungspfad erstellt wird und der Link schreibgeschützt und zusammengeführt wird, sind sowohl Cat.txt als auch Cow.txt unter C:\Foo sichtbar, aber Cat.txt kann geändert werden, während Cow.txt nicht geändert werden kann.
CREATE_BIND_LINK_FLAG_MERGED
0x00000002

Ein zusammengeführter Link ähnelt einem Schattenlink, mit dem Unterschied, dass der vorhandene Inhalt im virtuellen Pfad mit dem Sicherungspfad zusammengeführt wird.

Sehen wir uns noch einmal das vorherige Beispiel für Schattenlink an, wobei dieses Flag hinzugefügt wurde. Beispiel:

– C:\Foo ist auf dem Datenträger vorhanden, wobei zwei Dateien Cat.txt und Dog.txt
– C:\Bar ist auf dem Datenträger vorhanden, wobei zwei Dateien Cow.txt und Mouse.txt

Wenn ein Link mit C:\Foo als virtuellem Pfad und C:\Bar als Unterstützungspfad mit dem Flag CREATE_BIND_LINK_FLAG_MERGED erstellt wird, zeigt der Pfad C:\Foo Cat.txt, Dog.txt, Cow.txt und Mouse.txt an.

Beachten Sie, dass zusammengeführte Links nur gelten, wenn der virtuelle Pfad ein Verzeichnis ist. Wenn eine Datei sowohl im Sicherungspfad als auch im virtuellen Pfad angezeigt wird, hat die Datei im Sicherungspfad Vorrang (d. h. die Datei im virtuellen Pfad ist maskiert). Dies gilt rekursiv für alle Verzeichnisse innerhalb des virtuellen Pfads. Da der Merge für Verzeichnisse gilt, wird das Verzeichnis als Ergebnis des Links zusammengeführt, wenn virtualPath und backingPath beide über ein Verzeichnis mit demselben Namen auf derselben Ebene verfügen. Wenn der Link kein zusammengeführter Link war, hat das Verzeichnis im Sicherungspfad Vorrang und überschreibt das Verzeichnis im virtualPath. Wenn eine Datei unter dem zusammengeführten Pfad erstellt wurde, wenn der zusammengeführte Link vorhanden ist, wird sie physisch am Sicherungspfad erstellt (wie bei jedem Bindungslink), und eine Datei mit demselben Namen wird im virtualPath überschrieben.

Betrachten wir die folgenden Verzeichnisstrukturen:

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

Und zwei verschiedene Links:

– {c:\Foo ist mit c:\Bar OHNE Merge} verknüpft. In diesem Fall zeigt c:\Foo\Sub nur Bar_sub.txt an.
- {c:\Foo ist mit c:\Bar WITH merge} verknüpft. In diesem Fall zeigt c:\Foo\Sub sowohl Foo_sub.txt als auch Bar_sub.txt an.

Da Bindungslinks pfadbasierte Links sind, zeigt der virtuelle Pfad auf die Datei, die zum Zeitpunkt der Linknachfolge vorhanden ist, wenn eine Datei im Sicherungspfad ersetzt, geändert oder gelöscht/neu erstellt wird. Dies geschieht, weil der Link beim Öffnen einer Datei aufgelöst wird. Wenn eine Datei aus dem Sicherungspfad aufgrund des Links eine Datei im virtuellen Pfad maskiert und die Datei im Sicherungspfad gelöscht wurde, wird die Datei im virtuellen Pfad entsprechend geöffnet.

Anforderungen

Anforderung Wert
Header bindlink.h

Weitere Informationen

CreateBindLink