Partilhar via


Manipulação de marcadores de posição

Orientações para minifiltros que implementam espaços reservados

Todas as implementações de virtualização que usam espaços reservados devem definir o atributo de arquivo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS nesses espaços reservados. Este atributo indica que:

  • Ler esses arquivos abaixo do minifiltro proprietário pode retornar 0s, e
  • Ler esses arquivos acima do minifiltro proprietário implica um custo extra para fornecer os dados.

Um minifiltro pode remover esse atributo do espaço reservado quando todos os dados estiverem disponíveis localmente.

Todos os minifiltros que implementam espaços reservados devem estar no Grupo de Ordem de Carga do HSM.

Orientação para todos os minifiltros

Os filtros não devem emitir leituras/gravações direcionadas de instâncias de filtro abaixo do Grupo de Ordem de Carga do HSM para arquivos que tenham o atributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS definido. Essa situação pode levar à corrupção de dados de arquivos. Um desenvolvedor de minifiltro poderia tentar contornar essa situação emitindo uma solicitação de E/S para o topo da pilha, mas tal solicitação poderia levar a bloqueios.

Os filtros também não devem emitir leituras e gravações em arquivos de espaço reservado que tenham o atributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS definido acima do Grupo de Ordem de Carga do HSM. Essa leitura ou gravação causa hidratação desnecessária quando nenhum aplicativo do usuário solicitou os dados do arquivo.

Um minifiltro não deve emitir leituras/gravações ao intercetar aberturas somente de atributos. Estas operações de leitura/gravação podem causar bloqueios, pois certas implementações não esperam que aberturas restritas a atributos sejam convertidas em operações de acesso a dados. Além disso, tais operações de leitura/escrita comprometem o objetivo de um minifiltro verificar o FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS, permitindo assim evitar as duas situações acima mencionadas.

Assim, recomenda-se que todos os minifiltros não devem emitir leituras/gravações em ficheiros que tenham FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS definido.