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.
O provedor usa o sistema de arquivos local sob a raiz de virtualização como um cache dos itens que gerencia. Um item (arquivo ou diretório) pode estar em um dos seis estados no sistema de arquivos local:
Virtuais
O item não existe localmente no disco. Ele é projetado, ou seja, sintetizado, durante enumerações de seu diretório pai. Os itens virtuais são mesclados com quaisquer itens que possam existir no disco para apresentar o conteúdo completo do diretório pai.
Espaço reservado
Para arquivos: O conteúdo do arquivo (fluxo de dados primário) não está presente no disco. Os metadados do arquivo (nome, tamanho, carimbos de data/hora, atributos, etc.) são armazenados em cache no disco.
Para diretórios: Alguns ou todos os descendentes imediatos do diretório (os arquivos e diretórios no diretório) não estão presentes no disco, ou seja, eles ainda são virtuais. Os metadados do diretório (nome, carimbos de data/hora, atributos, etc.) são armazenados em cache no disco.
Espaço reservado hidratado
Para arquivos: o conteúdo e os metadados do arquivo foram armazenados em cache no disco. Também referido como "ficheiro parcial".
Para diretórios: um diretório que foi criado no disco como um espaço reservado nunca se torna um diretório de espaço reservado hidratado. Isso permite que o provedor adicione ou remova itens do diretório em seu armazenamento de backup e faça com que essas alterações sejam refletidas no cache local.
Espaço reservado sujo (hidratado ou não)
Os metadados do item foram modificados localmente e não são mais um cache de seu estado no armazenamento do provedor. Observe que criar ou excluir um arquivo ou diretório em um diretório de espaço reservado faz com que esse diretório de espaço reservado fique sujo.
Ficheiro/diretório completo
Para arquivos: o conteúdo do arquivo (fluxo de dados primário) foi modificado. O arquivo não é mais um cache de seu estado no armazenamento do provedor. Os arquivos que foram criados no sistema de arquivos local (ou seja, que não existem no armazenamento do provedor) também são considerados arquivos completos.
Para diretórios: Os diretórios que foram criados no sistema de arquivos local (ou seja, que não existem no armazenamento do provedor) são considerados diretórios completos. Um diretório que foi criado no disco como um espaço reservado nunca se torna um diretório completo.
Lápide
Um espaço reservado oculto especial que representa um item que foi excluído do sistema de arquivos local. Quando um diretório é enumerado, o ProjFS mescla o conjunto de itens locais (espaços reservados, arquivos completos, etc.) com o conjunto de itens projetados virtualmente. Se um item aparecer nos conjuntos local e projetado, o item local terá precedência. Se um arquivo não existir no sistema de arquivos local, não há nenhum estado local, portanto, ele aparecerá na enumeração. No entanto, se esse item tivesse sido excluído, tê-lo aparecido na enumeração seria inesperado. A substituição de um item excluído por uma marca de exclusão resulta nos seguintes efeitos:
- Enumerações para não revelar o item.
- Os arquivos abertos que esperam que o item exista falham, por exemplo, com "arquivo não encontrado".
- Cria um arquivo que espera ter êxito somente se o item não existir com êxito; O ProjFS remove a lápide como parte da operação.
Para ilustrar os estados acima, considere a seguinte sequência, dado um provedor ProjFS que tem um único arquivo "foo.txt" localizado na raiz de virtualização C:\root.
- Um aplicativo enumera C:\root. Ele vê o arquivo virtual "foo.txt". Como o arquivo ainda não foi acessado, o arquivo não existe no disco.
- O aplicativo abre um identificador para C:\root\foo.txt. O ProjFS diz ao provedor para criar um espaço reservado para ele.
- O aplicativo lê o conteúdo do arquivo. O provedor fornece o conteúdo do arquivo para o ProjFS e ele é armazenado em cache para C:\root\foo.txt. O arquivo agora é um espaço reservado hidratado.
- O aplicativo atualiza o carimbo de data/hora da Última modificação. O arquivo agora é um espaço reservado sujo e hidratado.
- O aplicativo abre um identificador para acesso de gravação ao arquivo. C:\root\foo.txt agora é um arquivo completo.
- O aplicativo exclui C:\root\foo.txt. O ProjFS substitui o arquivo por uma lápide. Agora, quando o aplicativo enumera C:\root it does not see foo.txt. Se ele tentar abrir o arquivo, a abertura falhará com ERROR_FILE_NOT_FOUND.