Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Armazenar uma referência a um arquivo ou diretório usando seu caminho e nome de arquivo não é confiável. Se um usuário renomear um arquivo, ele quebra os links para o arquivo. Se um usuário renomear o diretório, ele quebrará os links para o arquivo e todos os arquivos e subdiretórios na árvore de diretórios.
O serviço de rastreamento de link distribuído permite que os aplicativos cliente rastreiem as fontes de link que foram movidas. Os clientes que assinam o serviço de rastreamento de links podem manter a integridade de suas referências, e os objetos podem ser rastreados de forma transparente para o usuário.
Identificadores de objeto
O serviço de rastreamento de link mantém seu link para um objeto usando um identificador de objeto (ID) . Um ID de objeto é um atributo opcional que identifica exclusivamente um arquivo ou diretório em um volume.
Um índice de todas as IDs de objeto é armazenado no volume. As operações de renomeação, backup e restauração preservam IDs de objetos. No entanto, as operações de cópia não preservam IDs de objeto, porque isso violaria sua exclusividade.
Você pode executar as seguintes operações em IDs de objeto:
- Criação
- Supressão
- Consulta
Ao criar uma ID de objeto, você estabelece a identidade do arquivo para o serviço de rastreamento de links. Por outro lado, quando você exclui uma ID de objeto, o serviço de rastreamento de link para de manter links para o arquivo. Para obter uma lista dos códigos de controle do sistema de arquivos que executam operações em IDs de objeto, consulte File Management Control Codes.
O serviço de rastreamento de link distribuído rastreia fontes de links para atalhos de shell e links OLE em volumes do sistema de arquivos NTFS. O cliente de link pode corrigir um link quebrado com informações atualizadas sobre o novo local da fonte do link.
Recursos de rastreamento de links
Os atalhos do shell incluem o rastreamento heurístico de links que usa um algoritmo de pesquisa em árvore para encontrar uma correspondência para uma fonte de link movida. O algoritmo de pesquisa baseia-se no último caminho conhecido do ficheiro e nas informações do ficheiro que incluem a data de criação, o tamanho do ficheiro e o nome e extensão do ficheiro.
A vinculação OLE inclui o mesmo rastreamento de link heurístico. O Windows também inclui o mesmo rastreamento de link heurístico com algumas melhorias adicionais para pesquisar espaços de nome para produzir resultados em alguns cenários comuns. As melhorias incluem o procedimento a seguir que depende dos limites de tempo impostos por um aplicativo cliente.
Para procurar espaços de nome
- Pesquise quatro níveis de diretório abaixo do último diretório.
- Mova um diretório para cima e repita as etapas 1 e 2 outras três vezes, o que pode gerar resultados se o objeto tiver se movido nas proximidades.
- Pesquise quatro níveis abaixo da raiz da área de trabalho, o que pode gerar resultados se o objeto tiver sido movido para um local na mesma área de trabalho.
- Pesquise quatro níveis abaixo da raiz em cada unidade fixa local.
- Repita as etapas de 1 a 3 sem o limite de quatro diretórios.
Observação
Esses esquemas de rastreamento de links são transparentes para o usuário final. No entanto, nem sempre produzem resultados positivos e podem ser demorados.
Para obter mais informações sobre atalhos de shell, consulte IShellLink.
Para obter mais informações sobre links OLE, consulte IOleLink.
Se for feito um link para um arquivo no NTFS 3.0 ou posterior e o arquivo for movido para qualquer outro volume com NTFS 3.0 ou posterior dentro do mesmo domínio, o arquivo poderá ser encontrado pelo serviço de rastreamento, sujeito a considerações de tempo. Além disso, se o arquivo for movido para fora do domínio ou dentro de um grupo de trabalho, ele será encontrado.
Para obter a versão NTFS de um volume, abra um prompt de comando com direitos de acesso de administrador e execute o seguinte comando:
fsutil fsinfo ntfsinfoX:
onde X é a letra da unidade do volume.
Quando um link é criado para um arquivo, o arquivo de destino é considerado o link de origeme o criador do link é o cliente de link . Por exemplo, se um atalho de shell for criado para vincular a um documento de texto, o documento de texto será a fonte do link e o atalho do shell será o cliente de link.
O serviço de rastreamento de link distribuído mantém links de arquivo para as seguintes situações que ocorrem dentro de um domínio:
- O arquivo de origem do link é movido de um volume do sistema de arquivos NTFS para outro dentro do mesmo domínio.
- O nome do computador que contém a fonte do link é renomeado.
- Os compartilhamentos de rede no computador de origem do link são alterados.
- O volume que contém o arquivo de origem do link é movido para outro computador dentro do mesmo domínio.
O serviço de rastreamento de links distribuídos também tenta manter links nas situações anteriores, mesmo quando eles não ocorrem dentro de um domínio, ou seja, são entre domínios ou dentro de um grupo de trabalho. Os links sempre podem ser mantidos nessas situações quando o compartilhamento de rede no computador de origem do link é alterado. Eles também podem ser mantidos quando uma fonte de link é movida dentro de um computador. Os links geralmente podem ser mantidos quando a fonte do link é movida para outro computador, mas essa forma de rastreamento é menos confiável ao longo do tempo.
Funcionalidade de rastreamento de link
A funcionalidade de rastreamento de link é implementada principalmente na forma dos seguintes dois serviços do sistema:
- Cliente de rastreamento de link distribuído
- Servidor de rastreamento de link distribuído
-
Cliente de rastreamento de link distribuído
-
O cliente de rastreamento de link distribuído é executado em todos os computadores e gerencia as atividades de rastreamento de link para esse computador. Essas atividades incluem a pesquisa de fontes de links e o processamento de movimentações de fontes de links. Quando uma fonte de link é movida, o serviço passa informações para o servidor de rastreamento de link distribuído que é executado em controladores de domínio.
-
Servidor de rastreamento de link distribuído
-
O servidor de rastreamento de link distribuído é executado em cada controlador de domínio em um domínio. O serviço aceita notificações de movimentação de arquivos e volumes do serviço de rastreamento em um computador e permite que o cliente de rastreamento de link distribuído consulte o local atual de uma fonte de link.
Este serviço de servidor mantém informações nos controladores de domínio sobre volumes e arquivos que foram movidos. As informações sobre movimentos não podem aumentar além de um tamanho específico e são automaticamente removidas se se tornarem desnecessárias.
Os serviços de rastreamento de links são expostos pelo IShellLink e interfaces IOleLink. Portanto, eles são usados por atalhos de shell. Quando o método IShellLink::Resolve é chamado e o arquivo referente não pode ser encontrado, por exemplo, quando o usuário ativa um atalho de shell, o serviço de rastreamento é chamado automaticamente para localizar o arquivo. Da mesma forma, quando a implementação do IOleLink não consegue encontrar um arquivo, por exemplo, em seu método BindToSource, ele chama automaticamente o serviço de rastreamento.
Limitações de rastreamento de links
Os serviços de rastreamento de link distribuído estão disponíveis somente no sistema de arquivos NTFS e estão disponíveis apenas para fontes de link no NTFS 3.0 ou posterior. Portanto, se uma fonte de link for movida para um volume do sistema de arquivos FAT, as informações de rastreamento serão perdidas. Além disso, se uma fonte de link é movida entre o NTFS 3.0 ou posterior, mas o computador que está executando a movimentação está executando uma versão anterior do Windows, as informações de rastreamento de link são perdidas. Quando as informações de rastreamento de link são perdidas, nenhum dano é feito ao arquivo de origem do link em si, ele simplesmente não é rastreável pelos serviços de rastreamento de link distribuídos.
Para obter a versão NTFS de um volume, abra um prompt de comando com direitos de acesso de administrador e execute o seguinte comando:
fsutil fsinfo ntfsinfoX:
onde X é a letra da unidade do volume.
Os links para arquivos em mídia removível não são mantidos. Além disso, o serviço de rastreamento não reconhece um novo volume do sistema de arquivos NTFS até que o sistema seja reinicializado. Um novo volume pode ficar disponível devido ao reparticionamento, à reformatação de um volume do sistema de arquivos FAT para o sistema de arquivos NTFS ou à conexão de uma nova unidade externa.