CF_SYNC_REGISTRATION structure (cfapi.h)

The details of the sync provider and sync root to be registered.

Syntax

typedef struct CF_SYNC_REGISTRATION {
  ULONG   StructSize;
  LPCWSTR ProviderName;
  LPCWSTR ProviderVersion;
  LPCVOID SyncRootIdentity;
  DWORD   SyncRootIdentityLength;
  LPCVOID FileIdentity;
  DWORD   FileIdentityLength;
  GUID    ProviderId;
} CF_SYNC_REGISTRATION;

Members

StructSize

The size of the CF_SYNC_REGISTRATION structure.

ProviderName

The name of the sync provider. This is a user friendly string with a maximum length of 255 characters.

ProviderVersion

The version of the sync provider. This is a user friendly string with a maximum length of 255 characters.

SyncRootIdentity

The sync root identity used by the provider. This member is optional with a maximum size of 64 KB. The API fails with ERROR_INVALID_PARAMETER when the maximum length is exceeded. The platform will provide SyncRootIdentity back to the sync provider in any callbacks to the sync provider.

SyncRootIdentityLength

The length of the SyncRootIdentity. This member is optional and is only used if a SyncRootIdentity is provided.

FileIdentity

An optional file identity. This member has a maximum size of 4 KB. The API fails with ERROR_INVALID_PARAMETER when the maximum length is exceeded. The sync root FileIdentity blob will be provided only when the subject of the callback is the sync root itself.

FileIdentityLength

The length of the FileIdentity. This member is optional and is only used if a FileIdentity is provided.

ProviderId

This is a GUID that is meant to identify a specific sync provider. It is optional. If not provided, the platform generates a GUID using the MD5 hash of the ProviderName string. The information is used for telemetry only such that the platform can better correlate activities from the same sync provider more efficiently and more accurately even if the sync provider registers sync roots with different ProviderName strings. It is recommended that a sync provider always supply the same GUID for all versions of its sync product(s). On the other hand, sync providers are free to choose different ProviderName strings for the sake of the best user experience.

Remarks

SyncRootIdentity and SyncRootIdentityLength are optional members. If not used, set SyncRootIdentity to nullptr and SyncRootIdentityLength to 0. FileIdentity and FileIdentityLength are also optional and if not used should be set to nullptr and 0, respectively.

Requirements

Requirement Value
Minimum supported client Windows 10, version 1709 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Header cfapi.h

See also

CfRegisterSyncRoot