CF_HYDRATION_POLICY_MODIFIER 枚举 (cfapi.h)

允许同步提供程序控制平台应如何冻结占位符文件。 这是可与主策略一起使用的修饰符: CF_HYDRATION_POLICY_PRIMARY

语法

typedef enum CF_HYDRATION_POLICY_MODIFIER {
  CF_HYDRATION_POLICY_MODIFIER_NONE,
  CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED,
  CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED,
  CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
} ;

常量

 
CF_HYDRATION_POLICY_MODIFIER_NONE
0x0000

无策略修饰符。
CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED
0x0001

此策略修饰符为同步提供程序提供两个保证。 首先,它保证同步提供程序返回的数据在返回到用户应用程序之前始终保存到磁盘。 其次,它允许同步提供程序检索之前返回到平台的相同数据,并验证其完整性。 只有在同步提供程序成功确认完整性后,平台才会完成用户 I/O 请求。 此修饰符有助于支持端到端数据完整性,但代价是额外的磁盘 I/O。
CF_HYDRATION_POLICY_MODIFIER_STREAMING_ALLOWED
0x0002

此策略修饰符授予平台不在本地磁盘上存储同步提供程序返回的任何数据的权限。 与 CF_HYDRATION_POLICY_MODIFIER_VALIDATION_REQUIRED 结合使用时,此策略修饰符无效。
CF_HYDRATION_POLICY_MODIFIER_AUTO_DEHYDRATION_ALLOWED
0x0004

此策略修饰符授予平台无需同步提供商帮助即可解除同步云文件占位符的冻结权限。 如果没有此标志,则不允许平台直接调用 CfDehydratePlaceholder 。 相反,解除云文件占位符冻结的唯一受支持方法是清除文件的固定属性并设置文件的未固定属性。 此时,在同步引擎收到有关这两个属性的目录更改通知后,实际解除冻结将由同步引擎异步执行。 指定此标志后,将允许平台直接在任何同步云文件占位符上调用 CfDehydratePlaceholder 。 建议同步提供程序支持自动冻结。

注意

此值在 Windows 10 版本 1803 及更高版本中可用。

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION
0x0008

此策略修饰符授予平台在截获 AV 筛选器扫描文件时同步完全冻结文件的权限。 希望使用 RestartHydrationFetchData 回调更改 的fileSize的同步提供程序必须选择加入ALLOW_FULL_RESTART_HYDRATION策略,以避免尝试扫描文件的防病毒和反恶意软件以及尝试使用 RestartHydration 进行更改fileSize的提供程序可能出现的死锁。

注意

仅当从 CfGetPlatformInfo 获取的 为 0x500 或更高时,PlatformVersion.IntegrationNumber才支持此枚举更新。

注解

通常,修饰符可以混合并与任何主策略 (CF_HYDRATION_POLICY_PRIMARY) 和其他策略修饰符匹配,只要组合不自冲突。

CF_HYDRATION_POLICY_MODIFIER_ALLOW_FULL_RESTART_HYDRATION添加 标志是为了避免重启水化功能遇到防病毒和恶意软件检测器 (AV) 导致的死锁。 所有打算在解除冻结请求过程中更新已解除冻结文件的文件大小的同步提供程序都应选择启用此功能,否则当 AV 尝试通过创建文件的内存映射部分来扫描正在打开的文件时,重启冻结可能会陷入死锁,从而导致冻结。 请注意,即使文件已在后端/服务器中更新,维护文件的快照或版本并满足用户请求(即使文件已在后端/服务器中更新)来满足用户请求的提供程序也不需要选择加入此策略。 同样,如果后端中的文件发生更改,导致混合请求失败的提供程序可能不会选择加入此策略。

要求

要求
最低受支持的客户端 Windows 10版本 1709 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
标头 cfapi.h

另请参阅

CF_HYDRATION_POLICY_PRIMARY

CfDehydratePlaceholder

CfGetPlatformInfo