oknick avatar image
0 Votes"
oknick asked oknick commented

CF_OPERATION_PARAMETERS CompletionStatus behavior (cfapi)

Hi, I am looking through the Cloud Filters API and was wondering about the exact behavior of the AckData parameter. If I call CfExecute with AckData and the CompletionStatus is set to STATUS_UNSUCCESSFUL, are the Offset and Length fields still relevant? Will it acknowledge certain ranges as unsuccessful?

EDIT: I want to make this question a little more general. For any of the operation parameters, does a failure CompletionStatus mean that the rest of the fields are irrelevant? Like in the case of AckData as described above?
Also, I did some minimal testing on the CF_OPERATION_TYPE_TRANSFER_DATA parameter a while ago and found that it requires the buffer field to be valid and defined to at least something even if the CompletionStatus is STATUS_UNSUCCESSFUL. Does the buffer actually serve any purpose on a failed call? I'm trying to understand why it's required no matter what?

· 7
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.


TransferData.Offset and TransferData.Length describe a range in the placeholder to which the sync provider is transferring the data. And the chuck size seems required a multiple of 4096.

0 Votes 0 ·
oknick avatar image oknick JeanineZhang-MSFT ·

My question is specifically about the behavior of the CompletionStatus field and how they behave with the fields around them.

0 Votes 0 ·


No matter what the state of CompletionStatus is, the buffer field need to be valid. The CfExecute function is intended to be used by a sync provider to respond to various callbacks from the platform.

0 Votes 0 ·
Show more comments

0 Answers