CF_UPDATE_FLAGS enumeration (cfapi.h)

Flags for updating a placeholder file or directory.

Syntax

typedef enum CF_UPDATE_FLAGS {
  CF_UPDATE_FLAG_NONE,
  CF_UPDATE_FLAG_VERIFY_IN_SYNC,
  CF_UPDATE_FLAG_MARK_IN_SYNC,
  CF_UPDATE_FLAG_DEHYDRATE,
  CF_UPDATE_FLAG_ENABLE_ON_DEMAND_POPULATION,
  CF_UPDATE_FLAG_DISABLE_ON_DEMAND_POPULATION,
  CF_UPDATE_FLAG_REMOVE_FILE_IDENTITY,
  CF_UPDATE_FLAG_CLEAR_IN_SYNC,
  CF_UPDATE_FLAG_REMOVE_PROPERTY,
  CF_UPDATE_FLAG_PASSTHROUGH_FS_METADATA,
  CF_UPDATE_FLAG_ALWAYS_FULL,
  CF_UPDATE_FLAG_ALLOW_PARTIAL
} ;

Constants

 
CF_UPDATE_FLAG_NONE
0x00000000

No update flags.
CF_UPDATE_FLAG_VERIFY_IN_SYNC
0x00000001

The update will fail if the CF_UPDATE_FLAG_MARK_IN_SYNC attribute is not currently set on the placeholder. This is to prevent a race between syncing changes from the cloud down to a local placeholder and the placeholder’s data stream getting locally modified.
CF_UPDATE_FLAG_MARK_IN_SYNC
0x00000002

The platform marks the placeholder as in-sync upon a successful update placeholder operation.
CF_UPDATE_FLAG_DEHYDRATE
0x00000004

Applicable to files only. When specified, the platform dehydrates the file after updating the placeholder successfully. The caller must acquire an exclusive handle when specifying this flag or data corruptions can occur. Note that the platform does not validate the exclusiveness of the handle.
CF_UPDATE_FLAG_ENABLE_ON_DEMAND_POPULATION
0x00000008

Applicable to directories only. When specified, it marks the updated placeholder directory partially populated such that any future access to it will result in a FETCH_PLACEHOLDERS callback sent to the sync provider.
CF_UPDATE_FLAG_DISABLE_ON_DEMAND_POPULATION
0x00000010

Applicable to directories only. When specified, it marks the updated placeholder directory fully populated such that any future access to it will be handled by the platform without any callbacks to the sync provider.
CF_UPDATE_FLAG_REMOVE_FILE_IDENTITY
0x00000020

When specified, FileIdentity and FileIdentityLength in CfUpdatePlaceholder are ignored and the platform will remove the existing file identity blob on the placeholder upon a successful update call.
CF_UPDATE_FLAG_CLEAR_IN_SYNC
0x00000040

The platform marks the placeholder as not in-sync upon a successful update placeholder operation.
CF_UPDATE_FLAG_REMOVE_PROPERTY
0x00000080

The platform removes all existing extrinsic properties on the placeholder.

NOTE

This value is available in Windows 10, version 1803 and later.

CF_UPDATE_FLAG_PASSTHROUGH_FS_METADATA
0x00000100

The platform passes CF_FS_METADATA to the file system without any filtering; otherwise, the platform skips setting any fields whose value is 0.

NOTE

This value is available in Windows 10, version 1803 and later.

CF_UPDATE_FLAG_ALWAYS_FULL
0x00000200

CF_UPDATE_FLAG_ALWAYS_FULL is effective on placeholder files only. When specified, the placeholder to be updated is marked always full. Once hydrated, any attempt to dehydrate such a placeholder file will fail with error code ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED.
CF_UPDATE_FLAG_ALLOW_PARTIAL
0x00000400

CF_UPDATE_FLAG_ALLOW_PARTIAL is effective on placeholder files only. When specified, the always full state on a placeholder file, if present, is cleared thus allowing it to be dehydrated again. It is invalid to specify this flag along with CF_UPDATE_FLAG_ALWAYS_FULL and error code ERROR_CLOUD_FILE_INVALID_REQUEST will be returned as a result.

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

CfUpdatePlaceholder