CF_CALLBACK_INFO 结构 (cfapi.h)

包含常见的回调信息,例如回调类型、触发回调的用户进程,以及有关请求回调的文件的基本信息。

语法

typedef struct CF_CALLBACK_INFO {
  DWORD               StructSize;
  CF_CONNECTION_KEY   ConnectionKey;
  LPVOID              CallbackContext;
  PCWSTR              VolumeGuidName;
  PCWSTR              VolumeDosName;
  DWORD               VolumeSerialNumber;
  LARGE_INTEGER       SyncRootFileId;
  LPCVOID             SyncRootIdentity;
  DWORD               SyncRootIdentityLength;
  LARGE_INTEGER       FileId;
  LARGE_INTEGER       FileSize;
  LPCVOID             FileIdentity;
  DWORD               FileIdentityLength;
  PCWSTR              NormalizedPath;
  CF_TRANSFER_KEY     TransferKey;
  UCHAR               PriorityHint;
  PCORRELATION_VECTOR CorrelationVector;
  CF_PROCESS_INFO     *ProcessInfo;
  CF_REQUEST_KEY      RequestKey;
} CF_CALLBACK_INFO;

成员

StructSize

CF_CALLBACK_INFO的大小。

ConnectionKey

CfConnectSyncRoot 为同步提供程序管理的同步根创建的不透明句柄。 为方便起见,将返回 ConnectionKey,因此同步提供程序无需手动跟踪它。

CallbackContext

指向同步提供程序在同步根连接时间提供的不透明 Blob。 为方便起见,将返回 CallbackContext,因此同步提供程序无需手动跟踪它。

VolumeGuidName

要提供服务的占位符文件/目录所在的卷的 GUID 名称。 其格式为:“\?\Volume{GUID}”。

VolumeDosName

卷的 DOS 驱动器号采用“X:”形式,其中 X 是驱动器号。

VolumeSerialNumber

卷的序列号。

SyncRootFileId

要提供服务的占位符文件或目录所在的同步根目录的 64 位文件系统维护的卷范围唯一 ID。

SyncRootIdentity

指向同步根注册时同步提供程序提供的不透明 Blob。

SyncRootIdentityLength

SyncRootIdentity 的长度(以字节为单位)。

FileId

要服务的占位符文件或目录的 64 位文件系统维护的卷范围唯一 ID。

FileSize

要服务的占位符文件的逻辑大小。 如果回调的主题是目录,则始终 0 如此。

FileIdentity

指向同步提供程序在占位符创建/转换/更新时提供的不透明 Blob。

FileIdentityLength

FileIdentity 的长度(以字节为单位)。

NormalizedPath

要在 VolumeGuidName/VolumeDosName 标识的卷上服务的占位符文件或目录的绝对路径。 它从卷的根目录开始。 有关更多详细信息,请参阅 备注 部分。

TransferKey

要服务的占位符文件/目录的不透明句柄。 同步提供程序必须将其传递回 CfExecute 调用,以便对文件/目录执行所需的操作。

PriorityHint

提供给同步提供程序的数值刻度,用于描述一个提取相对于另一个提取的相对优先级,以便为用户提供响应最快速的体验。 值的范围从 0 (最低可能优先级) 到 15 (最高可能优先级) ,但否则这些值没有特定含义。 筛选器可能会根据条件调整选择优先级提示的方式。 同步提供程序可以随意使用提示,但可以选择。

CorrelationVector

可选的相关向量。

ProcessInfo

指向 CF_PROCESS_INFO 结构,该结构包含有关触发此回调的用户进程的信息。 仅当同步提供程序在同步根连接时间指定 CF_CONNECT_FLAG_REQUIRE_PROCESS_INFO 时,它才存在。

RequestKey

一个不透明 ID,用于唯一标识特定云文件上的云文件操作,如 TransferKey 所指示。 同步提供程序无需解释此字段。 同步提供程序的唯一要求是按原样将其传输到 CF_OPERATION_INFO

备注

如果以下所有条件都成立,则文件名被视为规范化:

  • 它包含文件的完整目录路径(包括卷名称),除非用户按文件 ID 打开了文件,但没有对整个路径的遍历权限。 (有关详细信息,请参阅 FltGetFileNameInformation.)
  • 卷名称是卷的非永久性设备对象名称, (例如“\Device\HarddiskVolume1”) 。
  • 所有短名称都扩展为等效的长名称。
  • 任何尾随“:$DATA”或“:$DATA”字符串都将从流名称中删除。
  • 已解析所有装入点。

要求

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

另请参阅

CfConnectSyncRoot

CfExecute

CF_PROCESS_INFO

CF_OPERATION_INFO

FltGetFileNameInformation