Condividi tramite


enumerazione CREATE_BIND_LINK_FLAGS (bindlink.h)

Questi flag possono essere passati a CreateBindLink per modificare il comportamento di collegamento di associazione predefinito in base alle esigenze dell'utente.

Sintassi

typedef enum CREATE_BIND_LINK_FLAGS {
  CREATE_BIND_LINK_FLAG_NONE,
  CREATE_BIND_LINK_FLAG_READ_ONLY,
  CREATE_BIND_LINK_FLAG_MERGED
} ;

Costanti

 
CREATE_BIND_LINK_FLAG_NONE
0x00000000

Non sono specificati flag di collegamento di associazione.
CREATE_BIND_LINK_FLAG_READ_ONLY
0x00000001

I collegamenti di sola lettura sono collegamenti di associazione in cui gli utenti del sistema non possono apportare modifiche ai file che risiedono nel percorso di backup se accedono tramite il percorso virtuale. Ciò significa che un utente con autorizzazione per modificare un file nel percorso di backup può comunque modificare tale file se accedono tramite il percorso di backup, ma non se accedono tramite il percorso virtuale. In genere, le autorizzazioni del percorso di backup si applicano come ad esempio quando viene eseguito l'accesso al percorso virtuale corrispondente, tuttavia, quando viene usato READ_ONLY flag le autorizzazioni di "scrittura" vengono mascherate. In questo modo, le applicazioni vedono che il file è READ_ONLY.

Si noti che la restrizione di sola lettura si applica solo ai file che risiedono nel percorso di backup su disco. Se il collegamento viene unito e i file originariamente dal percorso della directory virtuale sono visibili, rimarranno modificabili. Ad esempio:

C:\Foo esiste su disco con un file Cat.txt
C:\Bar esiste su disco con un file Cow.txt

Quando viene creato un collegamento con C:\Foo come percorso virtuale e C:\Bar come percorso di backup e il collegamento viene contrassegnato in sola lettura e unito, sia Cat.txt che Cow.txt saranno visibili in C:\Foo, tuttavia, Cat.txt sarà modificabile mentre Cow.txt non sarà modificabile.
CREATE_BIND_LINK_FLAG_MERGED
0x00000002

Un collegamento unito è simile a un collegamento shadow, ad eccezione del contenuto esistente nel percorso virtuale viene unito al percorso di backup.

Si consideri nuovamente l'esempio precedente per il collegamento shadow, con l'aggiunta di questo flag. Ad esempio:

- C:\Foo esiste su disco con due file Cat.txt e Dog.txt
- C:\Bar esiste su disco con due file Cow.txt e Mouse.txt

Quando viene creato un collegamento con C:\Foo come percorso virtuale e C:\Bar come percorso di backup con il flag CREATE_BIND_LINK_FLAG_MERGED, il percorso C:\Foo mostrerà Cat.txt, Dog.txt, Cow.txt e Mouse.txt.

Si noti che i collegamenti uniti si applicano solo quando il percorso virtuale è una directory. Nel caso in cui un file venga visualizzato sia nel percorso di backup che nel percorso virtuale, il file nel percorso di backup ha la precedenza (ad esempio, il file nel percorso virtuale viene mascherato). Questo vale in modo ricorsivo per tutte le directory all'interno del percorso virtuale. Poiché l'unione si applica alle directory, se virtualPath e backingPath hanno entrambe una directory con lo stesso nome allo stesso livello, la directory verrà unita come risultato del collegamento. Se il collegamento non era un collegamento unito la directory nel percorso di backup avrà la precedenza e eseguirà l'override della directory in virtualPath. Se un file è stato creato nel percorso unito quando esiste il collegamento unito, verrà creato fisicamente nel percorso di backup , come accade con qualsiasi collegamento di associazione, e eseguirà l'override di un file con lo stesso nome in virtualPath.

Si considerino le strutture di directory seguenti:

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

E due collegamenti diversi:

- {c:\Foo è collegato a c:\Bar WITHOUT merge}. In questo caso c:\Foo\Sub visualizzerà solo Bar_sub.txt.
- {c:\Foo è collegato a c:\Bar WITH merge}. In questo caso c:\Foo\Sub visualizzerà sia Foo_sub.txt che Bar_sub.txt.

Poiché i collegamenti di associazione sono collegamenti basati sul percorso, se un file viene sostituito, modificato o eliminato/ricreato nel percorso di backup dopo la creazione del collegamento, il percorso virtuale punta al file presente al momento dell'esecuzione del collegamento. Si verifica perché il collegamento viene risolto al momento dell'apertura di un file. Di conseguenza, se un file dal percorso di backup maschera un file nel percorso virtuale a causa del collegamento e se il file nel percorso di backup è stato eliminato, un'apertura successiva aprirà il file nel percorso virtuale.

Requisiti

Requisito Valore
Intestazione bindlink.h

Vedi anche

CreateBindLink