Gestion des espaces réservés

Conseils pour les minifiltres qui implémentent des espaces réservés

Toutes les implémentations de virtualisation qui utilisent des espaces réservés doivent définir l’attribut de fichier FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS sur ces espaces réservés. Cet attribut indique que :

  • La lecture de ces fichiers en dessous du minifiltre propriétaire peut retourner 0s, et
  • La lecture de ces fichiers au-dessus du minifiltre propriétaire entraîne le coût supplémentaire de la fourniture des données.

Un minifiltre peut supprimer cet attribut de l’espace réservé une fois que les données entières sont disponibles localement.

Tous les minifiltres qui implémentent des espaces réservés doivent se trouver dans le groupe d’ordre de chargement HSM.

Conseils pour tous les minifiltres

Les filtres ne doivent pas émettre de lectures/écritures ciblées à partir d’instances de filtre situées sous le groupe d’ordre de chargement HSM pour les fichiers dont l’attribut FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS défini. Cette situation peut entraîner une altération des données de fichier. Un développeur de minifiltres pourrait essayer de contourner cette situation en émettant une demande d’E/S en haut de la pile, mais une telle demande pourrait entraîner des blocages.

Les filtres ne doivent pas non plus émettre de lectures et d’écritures sur les fichiers d’espace réservé dont l’attribut FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS est défini au-dessus du groupe d’ordres de chargement HSM. Une telle lecture ou écriture entraîne une hydratation inutile lorsqu’aucune application utilisateur n’a demandé les données du fichier.

Un minifiltre ne doit pas émettre de lectures/écritures lors de l’interception des ouvertures d’attribut uniquement. Ces lectures/écritures peuvent provoquer des blocages, car certaines implémentations ne s’attendent pas à ce que les ouvertures d’attribut uniquement soient converties en opérations d’accès aux données. En outre, ces lectures/écritures contredisent l’objectif d’un minifiltre de vérification de FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS afin d’éviter les deux situations mentionnées ci-dessus.

Par conséquent, il est recommandé que tous les minifiltres ne émettent pas de lectures/écritures sur les fichiers qui ont FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS défini.