CREATE_BIND_LINK_FLAGS enumeração (bindlink.h)

Esses sinalizadores podem ser passados para CreateBindLink para alterar o comportamento de vínculo de associação padrão para atender às necessidades do usuário.

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

Nenhum sinalizador de link de associação é especificado.
CREATE_BIND_LINK_FLAG_READ_ONLY
0x00000001

Os links somente leitura são links de associação em que os usuários do sistema são impedidos de fazer alterações em arquivos que residem no caminho de backup se forem acessados por meio do caminho virtual. Isso significa que um usuário com permissão para modificar um arquivo no caminho de backup ainda poderá modificar esse arquivo se ele acessá-lo por meio do caminho de backup, mas não se ele acessá-lo pelo caminho virtual. Normalmente, as permissões do caminho de backup se aplicam como tal quando o caminho virtual correspondente é acessado, no entanto, quando READ_ONLY sinalizador é usado, as permissões de "gravação" são mascaradas. Isso garante que os aplicativos vejam que o arquivo está READ_ONLY.

Observe que a restrição somente leitura só se aplica a arquivos que residem no caminho de backup no disco. Se o link for mesclado e os arquivos originalmente do caminho do diretório virtual estiverem visíveis, eles permanecerão modificáveis. Por exemplo:

C:\Foo existe no disco com um arquivo Cat.txt
C:\Bar existe no disco com um arquivo Cow.txt

Quando um link é criado com C:\Foo como o caminho virtual e C:\Bar como o caminho de backup e o link é marcado como somente leitura e mesclado, Cat.txt e Cow.txt ficarão visíveis em C:\Foo, no entanto, Cat.txt serão modificáveis enquanto Cow.txt não serão modificáveis.
CREATE_BIND_LINK_FLAG_MERGED
0x00000002

Um link mesclado é como um link de sombra, exceto que o conteúdo existente no caminho virtual é mesclado com o caminho de backup.

Vamos considerar o exemplo anterior para o link de sombra mais uma vez, com a adição desse sinalizador. Por exemplo:

- O C:\Foo existe no disco com dois arquivos Cat.txt e Dog.txt
- O C:\Bar existe no disco com dois arquivos Cow.txt e Mouse.txt

Quando um link é criado com C:\Foo como o caminho virtual e C:\Bar como o caminho de apoio com o sinalizador CREATE_BIND_LINK_FLAG_MERGED, o caminho C:\Foo mostrará Cat.txt, Dog.txt, Cow.txt e Mouse.txt.

Observe que os links mesclados só se aplicam quando o caminho virtual é um diretório. No caso em que um arquivo aparece no caminho de backup e no caminho virtual, o arquivo no caminho de backup tem precedência (ou seja, o arquivo no caminho virtual é mascarado). Isso se aplica recursivamente a todos os diretórios dentro do caminho virtual. Como a mesclagem se aplica a diretórios, se o virtualPath e o backingPath tiverem um diretório com o mesmo nome no mesmo nível, o diretório será mesclado como um resultado do link. Se o link não for um link mesclado, o diretório no caminho de backup terá precedência e substituirá o diretório no virtualPath. Se um arquivo tiver sido criado no caminho mesclado quando o link mesclado existir, ele será criado fisicamente no caminho de backup (como é o caso com qualquer link de associação) e substituirá um arquivo com o mesmo nome no virtualPath.

Vamos considerar as seguintes estruturas de diretório:

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

E dois links diferentes:

- {c:\Foo está vinculado a c:\Bar WITHOUT merge}. Nesse caso, c:\Foo\Sub mostrará apenas Bar_sub.txt.
- {c:\Foo está vinculado a c:\Bar WITH merge}. Nesse caso, c:\Foo\Sub mostrará Foo_sub.txt e Bar_sub.txt.

Como os links de associação são links baseados em caminho, se um arquivo for substituído, modificado ou excluído/recriado no caminho de backup após a criação do link, o caminho virtual apontará para o arquivo que existe no momento em que o link estiver sendo seguido. Isso acontece porque o link é resolvido no momento em que um arquivo é aberto. Assim, se um arquivo do caminho de backup estiver mascarando um arquivo no caminho virtual devido ao link e se o arquivo no caminho de backup tiver sido excluído, uma abertura subsequente abrirá o arquivo no caminho virtual.

Requisitos

Requisito Valor
Cabeçalho bindlink.h

Confira também

CreateBindLink