处理占位符

实现占位符的微筛选器指南

使用 占位符 的所有虚拟化实现都必须在这些占位符上设置 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 文件属性。 此属性指示:

  • 从拥有的微筛选器下方读取此类文件可能会返回 0,并且
  • 从拥有的微筛选器上方读取此类文件需要提供数据的额外成本。

当整个数据在本地可用后,微筛选器可以从占位符中删除此属性。

实现占位符的所有微筛选器都必须位于 HSM 加载顺序组中

所有微筛选器指南

对于设置了 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 属性的文件,筛选器不得从 HSM 加载顺序组下面的筛选器实例发出定向读/写操作。 这种情况可能会导致文件数据损坏。 微筛选器开发人员可以尝试通过向堆栈顶部发出 IO 请求来规避这种情况,但此类请求可能会导致死锁。

筛选器也不应对从 HSM 加载顺序组上方设置了 FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS 属性的占位符文件发出读取和写入操作。 如果没有用户应用程序请求文件数据,这种读取或写入会导致不必要的混合。

微筛选器不应在截获仅属性打开时发出读/写。 此类读/写可能会导致死锁,因为某些实现不需要将仅属性打开转换为数据访问操作。 此外,这种读/写会破坏微筛选器检查FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS的目的,因此可以避免上述两种情况。

因此,建议所有微筛选器都不要对设置了FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS的文件发出读/写操作。