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.
Um marcador de sistema de arquivos é um arquivo que representa o conteúdo real de um arquivo ou diretório localizado noutro local. Essa otimização permite que o conteúdo real de um arquivo ou diretório resida em outro lugar e seja buscado sob demanda. O conteúdo real inclui metadados, dados de arquivo e entradas de diretório.
Os espaços reservados podem ser arquivos ou diretórios. Eles podem conter uma parte do arquivo real ou metadados de diretório ou uma parte dos dados de arquivo real ou entradas de diretório. Os ficheiros de espaço reservado são marcados como ficheiros esparsos com o bit FILE_ATTRIBUTE_SPARSE_FILE definido.
Normalmente, um espaço reservado é um ponto de reatribuição que um minifiltro do sistema de arquivos possui e gere. O minifiltro proprietário é o facilitador da virtualização e possibilita que um espaço reservado pareça e se comporte como um arquivo ou diretório regular no sistema de arquivos. Esses drivers de virtualização intercetam solicitações de E/S em seus espaços reservados e facilitam um comportamento semelhante ao do sistema de arquivos. ProjFs e Cloud Files são dois exemplos de plataformas de virtualização no Windows que usam espaços reservados.
Os minifiltros que possuem os espaços reservados são capazes de lidar adequadamente com essas solicitações de E/S para as satisfazer. Por exemplo, se um aplicativo tentar ler um arquivo de espaço reservado desidratado, o minifiltro fornecerá os dados do arquivo para satisfazer a solicitação de E/S.
Possuir minifiltros só é capaz de fornecer a virtualização para solicitações de E/S que se originam acima deles, seja do modo de usuário ou de componentes que estão acima deles na pilha de E/S.
Os minifiltros que não possuem o placeholder têm a capacidade de executar operações de E/S direcionadas para filtros abaixo deles usando APIs como FltReadFile, FltWriteFile, etc. Se um minifiltro não proprietário emitisse uma solicitação de E/S direcionada para um arquivo de espaço reservado abaixo do minifiltro proprietário, o minifiltro proprietário não seria capaz de satisfazer adequadamente a solicitação de E/S.
Por exemplo, se um filtro emitir um FltReadFile direcionado a um ficheiro de espaço reservado desidratado que o minifiltro proprietário não vê, o filtro de direcionamento pode obter um bloco de zeros (0) em vez dos dados reais, porque o espaço reservado pode ser um ficheiro esparso. Se o sistema armazena em cache uma leitura que buscou um bloco de 0s, essa leitura polui o cache, o que pode corromper os dados do arquivo se o sistema liberar o cache poluído para o disco. Por isso, é imperativo que os minifiltros manuseiem espaços reservados adequadamente.