CF_CALLBACK_INFO structure (cfapi.h)
Contains common callback information.
Syntax
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;
Members
StructSize
The size of the structure.
ConnectionKey
An opaque handle created by CfConnectSyncRoot for a sync root managed by the sync provider.
CallbackContext
points to an opaque blob that the sync provider provides at the sync root connect time.
VolumeGuidName
GUID name of the volume on which the placeholder file/directory to be serviced resides. It is in the form: “\?\Volume{GUID}”.
VolumeDosName
DOS drive letter of the volume in the form of “X:” where X is the drive letter.
VolumeSerialNumber
The serial number of the volume.
SyncRootFileId
A 64 bit file system maintained volume-wide unique ID of the sync root under which the placeholder file/directory to be serviced resides.
SyncRootIdentity
Points to the opaque blob provided by the sync provider at the sync root registration time.
SyncRootIdentityLength
The length, in bytes, of the SyncRootIdentity.
FileId
A 64 bit file system maintained, volume-wide unique ID of the placeholder file/directory to be serviced.
FileSize
The logical size of the placeholder file to be serviced. It is always 0 if the subject of the callback is a directory.
FileIdentity
Points to the opaque blob that the sync provider provides at the placeholder creation/conversion/update time.
FileIdentityLength
The length, in bytes, of FileIdentity.
NormalizedPath
The absolute path of the placeholder file/directory to be serviced on the volume identified by VolumeGuidName/VolumeDosName. It starts from the root directory of the volume. See the Remarks section for more details.
TransferKey
An opaque handle to the placeholder file/directory to be serviced. The sync provider must pass it back to the CfExecute call in order to perform the desired operation on the file/directory.
PriorityHint
A numeric scale given to the sync provider to describe the relative priority of one fetch compared to another fetch, in order to provide the most responsive experience to the user. The values range from 0 (lowest possible priority) to 15 (highest possible priority).
CorrelationVector
An optional correlation vector.
ProcessInfo
Points to a structure that contains the information about the user process that triggers this callback.
RequestKey
An opaque id that uniquely identifies a cloud file operation on a particular cloud file.
Remarks
A file name is considered normalized if all of the following are true:
- It contains the full directory path for the file, including the volume name, unless the user opened the file by file ID but does not have traverse privilege for the entire path. (For more information, see FltGetFileNameInformation.)
- The volume name is the volume's non-persistent device object name (for example, "\Device\HarddiskVolume1").
- All short names are expanded to the equivalent long names.
- Any trailing ":$DATA" or "::$DATA" strings are removed from the stream name.
- All mount points are resolved.
Requirements
| Minimum supported client | Windows 10, version 1709 [desktop apps only] |
| Minimum supported server | Windows Server 2016 [desktop apps only] |
| Header | cfapi.h |