CF_CALLBACK_TYPE 枚举 (cfapi.h)
包含对占位符文件或文件夹使用的各种类型的回调。
语法
typedef enum CF_CALLBACK_TYPE {
CF_CALLBACK_TYPE_FETCH_DATA,
CF_CALLBACK_TYPE_VALIDATE_DATA,
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_DELETE,
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
CF_CALLBACK_TYPE_NOTIFY_RENAME,
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;
常量
CF_CALLBACK_TYPE_FETCH_DATA 此回调用于向同步提供程序请求满足占位符上的 I/O 请求或显式解除冻结请求所需的一系列文件数据。 如果同步提供程序指定的解除冻结策略在同步根注册时 未ALWAYS_FULL ,则需要实现此回调。 |
CF_CALLBACK_TYPE_VALIDATE_DATA 此回调用于请求同步提供程序确认给定范围的文件数据(之前 CF_OPERATION_TYPE_TRANSFER_DATA 操作已存在于磁盘上)是有效的,因此平台可以使用它来满足用户 I/O 请求。 仅当同步提供程序指定了同步根注册时 VALIDATION_REQUIRED 解除冻结策略修饰符时,才需要实现此回调。 |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA 此回调用于通知同步提供程序不再需要一系列文件数据,通常是因为发起的请求已取消。 这样,同步提供程序就可以停止尝试获取数据 (取消未完成的网络请求等 ) 。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS 此回调用于要求同步提供程序提供有关占位符目录的内容的信息,以满足目录查询操作或尝试在目录下打开文件。 仅当同步提供程序在同步根注册时指定 CF_POPULATION_POLICY_ALWAYS_FULL 以外的策略时,才需要实现此回调。 |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS 此回调用于通知同步提供程序不再需要占位符目录的内容,通常是因为原始请求已取消。 这样,同步提供程序就可以停止尝试获取内容 (取消未完成的网络请求等 ) 。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION 此回调用于通知同步提供程序,已成功打开其某个同步根下的占位符进行读/写/删除访问。 不阻止执行打开操作的用户应用程序。 同步提供程序不会响应。 此通知不适用于目录。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION 此回调用于通知同步提供程序,其某个同步根下的占位符已关闭,该占位符之前已打开进行读/写/删除访问。 不会阻止执行关闭操作的用户应用程序。 同步提供程序不会响应。 此通知不适用于目录。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE 此回调用于通知同步提供程序,其同步根之一下的占位符即将停用。 执行解除冻结的用户应用程序被阻止。 同步提供程序应会做出响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION 此回调用于通知同步提供程序,其某个同步根下的占位符已成功解除冻结。 不会阻止执行解除冻结的用户应用程序。 同步提供程序不会响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_DELETE 此回调用于通知同步提供程序将删除其同步根之一下的占位符。 执行删除的用户应用程序被阻止。 同步提供程序应会做出响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 此回调用于通知同步提供程序已成功删除其同步根之一下的占位符。 不会阻止执行删除的用户应用程序。 同步提供程序不会响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_RENAME 此回调用于通知同步提供程序,其同步根之一下的占位符即将重命名或移动。 执行重命名/移动的用户应用程序被阻止。 同步提供程序应会做出响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION 此回调用于通知同步提供程序,其某个同步根下的占位符已成功重命名或移动。 不会阻止执行重命名/移动的用户应用程序。 同步提供程序不会响应。 此回调的实现是可选的。 |
CF_CALLBACK_TYPE_NONE 值: 0xffffffff 无回调类型。 |
注解
这些不是库提供的 API,而是同步提供程序必须实现的回调,以便为来自平台的请求提供服务。 根据需要,平台将要求在同步提供程序进程内运行的库实例调用相应的回调例程。
回调例程将在任意线程 (线程池) 的一部分调用。 在不同的线程中可以同时发生多个回调,同步提供程序代码负责实现任何必要的同步,以使此工作可靠。 所有回调都是异步的。 触发回调的异步用户请求将被插入,并将控件返回到用户应用程序。
每个回调请求都有固定的 60 秒超时。 对来自同步提供程序的任何挂起请求的有效操作会重置所有挂起请求的计时器。
所有回调函数都有相同的原型,其中包含两个参数: CF_CALLBACK_INFO 结构和 CF_CALLBACK_PARAMETERS 结构。
回调例程没有返回值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10版本 1709 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
标头 | cfapi.h |