Control de marcadores de posición

Guía para minifiltros que implementan marcadores de posición

Todas las implementaciones de virtualización que usan marcadores de posición deben establecer el atributo de archivo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS en estos marcadores de posición. Este atributo indica que:

  • Leer estos archivos debajo del minifiltro propietario podría devolver 0s y
  • La lectura de estos archivos por encima del minifiltro propietario conlleva el costo adicional de proporcionar los datos.

Un minifiltro puede quitar este atributo del marcador de posición una vez que todos los datos estén disponibles localmente.

Todos los minifiltros que implementan marcadores de posición deben estar en el grupo de pedidos de carga de HSM.

Guía para todos los minifiltros

Los filtros no deben emitir lecturas y escrituras dirigidas de instancias de filtro debajo del grupo de pedidos de carga de HSM para los archivos que tienen establecido el atributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS. Esta situación podría provocar daños en los datos de archivos. Un desarrollador de minifiltros podría intentar eludir esta situación mediante la emisión de una solicitud de E/S a la parte superior de la pila, pero dicha solicitud podría provocar interbloqueos.

Los filtros tampoco deben emitir lecturas y escrituras en archivos de marcador de posición que tengan el atributo FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS establecido en encima del grupo de pedidos de carga de HSM. Este tipo de lectura o escritura provoca una hidratación innecesaria cuando ninguna aplicación de usuario ha solicitado los datos del archivo.

Un minifiltro no debe emitir lecturas y escrituras al interceptar solo los atributos abiertos. Estas lecturas y escrituras pueden provocar interbloqueos, ya que ciertas implementaciones no esperan que se abran solo atributos para convertirse en operaciones de acceso a datos. Además, tales lecturas y escrituras derrotan el propósito de una comprobación de minifiltro para FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS para que pueda evitar las dos situaciones mencionadas anteriormente.

Por lo tanto, se recomienda que todos los minifiltros no emitan lecturas y escrituras en archivos que tengan FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS establecido.