Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подробные параметры операции с файлом-заполнителем или папкой. Данные, предоставляемые в этой структуре, зависят от CF_OPERATION_TYPE операции.
Синтаксис
typedef struct CF_OPERATION_PARAMETERS {
ULONG ParamSize;
union {
struct {
CF_OPERATION_TRANSFER_DATA_FLAGS Flags;
NTSTATUS CompletionStatus;
LPCVOID Buffer;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
} TransferData;
struct {
CF_OPERATION_RETRIEVE_DATA_FLAGS Flags;
LPVOID Buffer;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
LARGE_INTEGER ReturnedLength;
} RetrieveData;
struct {
CF_OPERATION_ACK_DATA_FLAGS Flags;
NTSTATUS CompletionStatus;
LARGE_INTEGER Offset;
LARGE_INTEGER Length;
} AckData;
struct {
CF_OPERATION_RESTART_HYDRATION_FLAGS Flags;
const CF_FS_METADATA *FsMetadata;
LPCVOID FileIdentity;
DWORD FileIdentityLength;
} RestartHydration;
struct {
CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS Flags;
NTSTATUS CompletionStatus;
LARGE_INTEGER PlaceholderTotalCount;
CF_PLACEHOLDER_CREATE_INFO *PlaceholderArray;
DWORD PlaceholderCount;
DWORD EntriesProcessed;
} TransferPlaceholders;
struct {
CF_OPERATION_ACK_DEHYDRATE_FLAGS Flags;
NTSTATUS CompletionStatus;
LPCVOID FileIdentity;
DWORD FileIdentityLength;
} AckDehydrate;
struct {
CF_OPERATION_ACK_RENAME_FLAGS Flags;
NTSTATUS CompletionStatus;
} AckRename;
struct {
CF_OPERATION_ACK_DELETE_FLAGS Flags;
NTSTATUS CompletionStatus;
} AckDelete;
} DUMMYUNIONNAME;
} CF_OPERATION_PARAMETERS;
Члены
ParamSize
DUMMYUNIONNAME
DUMMYUNIONNAME.TransferData
Поставщик синхронизации выполняет TRANSFER_DATA для восстановления файла заполнителя. Эта операция может быть выполнена в ответ на обратный вызов FETCH_DATA , обратный вызов VALIDATE_DATA или в рамках упреждающего фонового восстановления за пределами любого контекста обратного вызова.
Этот API применим только для поставщиков синхронизации, которые поддерживают политику гидратации, которая меньше ALWAYS_FULL. В противном случае операция завершится сбоем с ERROR_CLOUD_FILE_INVALID_REQUEST.
Поставщик синхронизации должен иметь WRITE_DATA или WRITE_DAC доступ к файлу, в котором должна выполняться TRANSFER_DATA операция. В противном случае операция завершится сбоем с ERROR_CLOUD_FILE_ACCESS_DENIED.
Чтобы выполнить эту операцию, выполните указанные ниже действия.
- OpInfo.Type должно иметь значение CF_OPERATION_TYPE_TRANSFER_DATA.
- OpParams.ParamSize должен иметь точный размер OpParams.TransferData плюс смещение OpParams.TransferData.
- OpParams.TransferData.Flags должно иметь значение CF_OPERATION_TRANSFER_DATA_FLAG_NONE.
- OpParams.TransferData.CompletionStatus должно иметь значение STATUS_SUCCESS , если поставщик синхронизации хочет передать данные в файл заполнителя. Если поставщику синхронизации не удается обработать запрос на восстановление по какой-либо причине и он не хочет перезапускать гидратацию, он должен задать состояние STATUS_CLOUD_FILE_* в поле CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
- OpParams.TransferData.Buffer должен указывать на допустимый буфер пользовательского режима, если opParams.TransferData.CompletionStatusSTATUS_SUCCESS и должен иметь по крайней мере OpParams.TransferData.Length байт; в противном случае поле буфера игнорируется.
- OpParams.TransferData.Offset и OpParams.TransferData.Length описывают диапазон в заполнителях, в который поставщик синхронизации передает данные. Не требуется, чтобы поставщик синхронизации возвращал все данные в соответствии с запросом за один раз. Поставщик синхронизации также может возвращать больше данных, чем запрошено. Например, поставщик синхронизации может решить перечитать из-за производительности или других причин. Поставщик синхронизации также может многократно выполнять несколько операций TRANSFER_DATA в ответ на один и тот же обратный вызов FETCH_DATA . Единственное требование заключается в том, что смещение и длина выравниваются по 4 КБ, если только описанный диапазон не заканчивается логическим размером файла (EoF). В этом случае длина не требуется выровнять по 4 КБ, пока результирующий диапазон заканчивается на размер логического файла или превышает его.
После завершения операции:
- Если поставщик синхронизации не указывает VALIDATION_REQUIRED во время корневой регистрации синхронизации.
В случае успешной передачи все ожидающие пользовательские запросы ввода-вывода n файл заполнителя, который получил все необходимые байты в результате передачи, будут завершены; в противном случае неполные пользовательские запросы ввода-вывода будут обновлены с учетом последнего состояния гидратации. В случае сбоя передачи все ожидающие пользовательские запросы ввода-вывода в файле заполнителя, которые перекрываются с диапазоном, как описано смещением и длиной, будут завершаться ошибкой OpParams.TransferData.CompletionStatus.
Если поставщик синхронизации указывает VALIDATION_REQUIRED во время корневой регистрации синхронизации, то платформа больше не будет выполнять обработку, пока данные в диапазоне не будут подтверждены поставщиком синхронизации с помощью операции ACK_DATA .
DUMMYUNIONNAME.TransferData.Flags
Флаги для передачи данных. Для этого параметра необходимо задать значение CF_OPERATION_TRANSFER_DATA_FLAG_NONE. Дополнительные сведения см . в разделе CF_OPERATION_TRANSFER_DATA_FLAGS .
DUMMYUNIONNAME.TransferData.CompletionStatus
Состояние передачи данных. Для этого параметра необходимо задать значение STATUS_SUCCESS , если поставщик синхронизации хочет передать данные в файл заполнителя. Если поставщику синхронизации не удается обработать запрос на восстановление по какой-либо причине и он не хочет перезапускать гидратацию, он должен задать состояние STATUS_CLOUD_FILE_* в поле CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
DUMMYUNIONNAME.TransferData.Buffer
Допустимый буфер пользовательского режима. Он должен указывать на допустимый буфер пользовательского режима, если параметр CompletionStatusSTATUS_SUCCESS и должен иметь не менее байтов длины . В противном случае поле буфера игнорируется.
DUMMYUNIONNAME.TransferData.Offset
Смещение, используемое с параметром Length для описания диапазона в заполнителье, в который передаются данные. Он описывает диапазон в заполнитель, в который поставщик синхронизации передает данные. Не требуется, чтобы поставщик синхронизации возвращал все данные в соответствии с запросом за один раз. Поставщик синхронизации также может возвращать больше данных, чем запрошено. Например, поставщик синхронизации может решить перечитать из-за производительности или других причин. Поставщик синхронизации также может многократно выполнять несколько операций TRANSFER_DATA в ответ на один и тот же обратный вызов FETCH_DATA . Смещение должно быть выровнено в 4 КБ.
DUMMYUNIONNAME.TransferData.Length
Длинабуфера в байтах. Длина должна быть выровнена по 4 КБ, если описанный диапазон не заканчивается на логическом размере файла (EoF). В этом случае длина не должна быть выровнена на 4 КБ, пока результирующий диапазон заканчивается на логическом размере файла или за его пределами. Даже если значение CompletionStatus не STATUS_SUCCESS, для этого поля должно быть задано допустимое значение.
DUMMYUNIONNAME.RetrieveData
Поставщик синхронизации выполняет операцию RETRIEVE_DATA в рамках восстановления заполнителя, чтобы проверить целостность данных, которые ранее были переданы в заполнитель. Эта операция может быть выполнена в ответ на обратный вызов FETCH_DATA , обратный вызов VALIDATE_DATA или в рамках упреждающего фонового восстановления за пределами любого контекста обратного вызова.
Этот API применим только для поставщиков синхронизации, которые поддерживают политику гидратации, которая меньше ALWAYS_FULL. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_NOT_SUPPORTED.
Поставщик синхронизации должен указать модификатор политики гидратации VALIDATE_REQUIRED во время корневой регистрации синхронизации, чтобы выполнить эту операцию. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_NOT_SUPPORTED.
Поставщик синхронизации должен иметь READ_DATA или WRITE_DAC доступ к файлу, в котором должна выполняться RETRIEVE_DATA операция. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_ACCESS_DENIED.
Чтобы выполнить эту операцию, выполните указанные ниже действия.
- OpInfo.Type должно иметь значение CF_OPERATION_TYPE_RETRIEVE_DATA.
- OpParams.ParamSize должен иметь точный размер OpParams.RetrieveData плюс смещение OpParams.RetrieveData.
- Для Параметра OpParams.RetrieveData.Flags должно быть задано значение CF_OPERATION_RETRIEVE_DATA_FLAG_NONE.
- OpParams.RetrieveData.Buffer должен указывать на допустимый буфер пользовательского режима и содержать по крайней мере байты OpParams.RetrieveData.Length . После успешного завершения операции он получает данные, ранее переданные в заполнитель через TRANSFER_DATA.
- OpParams.RetrieveData.Offset и OpParams.RetrieveData.Length описывают диапазон в заполнителях, из которого поставщик синхронизации получает данные. Запрашиваемый диапазон должен быть полностью гидратирован операцией TRANSFER_DATA до операции RETRIEVE_DATA , в противном случае операция завершится сбоем с STATUS_CLOUD_FILE_INVALID_REQUEST. Смещение и длина выравниваются по 4 КБ, если описанный диапазон не заканчивается на размере логического файла (EoF). В этом случае длина не обязательно должна быть выровнена на 4 КБ, если она заканчивается на размер логического файла или за его пределами.
- OpParams.RetrieveData.ReturnedLength получает фактическое количество байтов, полученных после успешного завершения операции.
DUMMYUNIONNAME.RetrieveData.Flags
Флаги для получения данных. Для этого параметра должно быть задано значение CF_OPERATION_RETRIEVE_DATA_FLAG_NONE. Дополнительные сведения см . в разделе CF_OPERATION_RETRIEVE_DATA_FLAGS .
DUMMYUNIONNAME.RetrieveData.Buffer
Он должен указывать на допустимый буфер пользовательского режима и иметь значение не менее байтов длины . После успешного завершения операции он получает данные, ранее переданные в заполнитель через TRANSFER_DATA.
DUMMYUNIONNAME.RetrieveData.Offset
Смещение, используемое с параметром Length для описания диапазона данных, полученных из заполнителя. Он описывает диапазон в заполнитель, из которого поставщик синхронизации получает данные. Запрашиваемый диапазон должен быть полностью гидратирован операцией TRANSFER_DATA до операции RETRIEVE_DATA , в противном случае операция завершится сбоем с STATUS_CLOUD_FILE_INVALID_REQUEST. Смещение должно быть выровнено в 4 КБ.
DUMMYUNIONNAME.RetrieveData.Length
Длина буфера в байтах. Это выравнивание по 4 КБ, если описанный диапазон не заканчивается на логическом размере файла (EoF). В этом случае длина не обязательно должна быть выровнена по 4 КБ, если она заканчивается на размер логического файла или за его пределами.
DUMMYUNIONNAME.RetrieveData.ReturnedLength
Количество байтов, полученных при успешном завершении операции.
DUMMYUNIONNAME.AckData
Поставщик синхронизации выполняет ACK_DATA операцию в рамках восстановления заполнителя после проверки целостности данных, которые ранее были переданы на платформу. Эта операция может быть выполнена в ответ на обратный вызов FETCH_DATA , обратный вызов VALIDATE_DATA или в рамках упреждающего фонового восстановления за пределами любого контекста обратного вызова.
Этот API применим только для поставщиков синхронизации, которые поддерживают политику гидратации, которая меньше ALWAYS_FULL. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_NOT_SUPPORTED.
Поставщик синхронизации должен указать модификатор политики гидратации VALIDATE_REQUIRED во время корневой регистрации синхронизации для выполнения этой операции. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_NOT_SUPPORTED.
Поставщик синхронизации должен иметь READ_DATA или WRITE_DAC доступ к файлу, в котором должна выполняться ACK_DATA операция. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_ACCESS_DENIED.
Чтобы выполнить эту операцию, выполните указанные ниже действия.
- OpInfo.Type должно иметь значение CF_OPERATION_TYPE_ACK_DATA.
- Для Параметра OpParams.ParamSize необходимо задать точный размер OpParams.AckData , а также значение Offsetобъекта OpParams.AckData.
- OpParams.AckData.Flags должно иметь значение CF_OPERATION_ACK_DATA_FLAG_NONE.
- OpParams.AckData.CompletionStatus должно иметь значение STATUS_SUCCESS если поставщик синхронизации проверяет, что данные в диапазоне должны быть подтверждены правильно. Если поставщику синхронизации не удается проверить данные по какой-либо причине и он не хочет перезапускать гидратацию, он должен задать состояние STATUS_CLOUD_FILE_* в поле CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
- OpParams.AckData.Offset и OpParams.AckData.Length описывают диапазон в заполнителье, данные которого будут подтверждены поставщиком синхронизации. Запрашиваемый диапазон не обязательно должен быть полностью гидратирован операцией TRANSFER_DATA перед операцией. Смещение и длина выравниваются по 4 КБ, если описанный диапазон не заканчивается на логическом размере файла (EoF). В этом случае длина не обязательно должна быть выровнена на 4 КБ, если она заканчивается на размер логического файла или за его пределами.
-
Длина
-1, обозначенная как CF_EOF, означает бесконечность (т. е. до конца файла).
После успешной операции ACK_DATA все ожидающие пользовательские запросы ввода-вывода в файле заполнителя, которые получили все необходимые байты в результате операции ACK_DATA , будут завершены. в противном случае неполные пользовательские запросы ввода-вывода будут обновлены с учетом последнего состояния гидратации. При сбое ACK_DATA случае все ожидающие пользовательские запросы ввода-вывода в файле заполнителя, которые перекрываются с диапазоном, как описано в смещениях и длине , будут завершаться сбоем со значением CompletionStatus.
DUMMYUNIONNAME.AckData.Flags
Флаги для подтверждения данных. Для этого параметра должно быть задано значение CF_OPERATION_ACK_DATA_FLAG_NONE. Дополнительные сведения см. в разделе CF_OPERATION_ACK_DATA_FLAGS .
DUMMYUNIONNAME.AckData.CompletionStatus
Состояние завершения подтверждения данных. Для этого параметра необходимо задать значение STATUS_SUCCESS , если поставщик синхронизации проверяет правильность данных в диапазоне. Если поставщику синхронизации не удается проверить данные по какой-либо причине и он не хочет перезапускать гидратацию, он должен задать состояние STATUS_CLOUD_FILE_* в поле CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
DUMMYUNIONNAME.AckData.Offset
Смещение в байтах данных заполнителя для подтверждения. Смещение описывает диапазон в заполнителье, данные которого будут подтверждены поставщиком синхронизации. Запрашиваемый диапазон не обязательно должен быть полностью гидратирован операцией TRANSFER_DATA перед операцией. Смещение должно быть выровнено в 4 КБ.
DUMMYUNIONNAME.AckData.Length
Длина данных в байтах в подтверждаемом заполнителье. Значение должно быть выровнено по 4 КБ, если описанный диапазон не заканчивается логическим размером файла (EoF). В этом случае длина не обязательно должна быть выровнена на 4 КБ, если она заканчивается на размер логического файла или превышает его.
Длина-1, обозначенная как CF_EOF, означает бесконечность (т. е. до конца файла).
DUMMYUNIONNAME.RestartHydration
Поставщик синхронизации выполняет RESTART_HYDRATION операцию для перезапуска текущего восстановления. Эта операция может быть выполнена в ответ на обратный вызов FETCH_DATA , обратный вызов VALIDATE_DATA или в рамках упреждающего фонового восстановления за пределами любого контекста обратного вызова.
Этот API применим только к поставщикам синхронизации, которые поддерживают политику полного восстановления. В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_NOT_SUPPORTED.
Поставщик синхронизации должен иметь WRITE_DATA или WRITE_DAC доступ к файлу, в котором должна выполняться операция RESTART_HYDRATION . В противном случае операция завершится сбоем с STATUS_CLOUD_FILE_ACCESS_DENIED.
Чтобы выполнить эту операцию, выполните указанные ниже действия.
- OpInfo.Type должно иметь значение CF_OPERATION_TYPE_RESTART_HYDRATION.
- OpParams.ParamSize должен иметь точный размер OpParams.RestartHydration плюс смещениеOpParams.RestartHydration.
-
Для OpParams.RestartHydration.Flags необходимо задать значение CF_OPERATION_RESTART_HYDRATION_FLAG_NONE или CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC.
- Если указано CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC , заполнитель будет помечен как синхронизированный после успешной операции RESTART_HYDRATION .
-
OpParams.RestartHydration.FsMetadata является необязательным. При указании:
- Значение в поле метки времени (CreationTime, LastAccessTime, LastWriteTime и ChangeTime) означает, что текущая
0метка времени в файле не изменяется. - Значение
0в FileAttributes означает, что текущие атрибуты файла в файле не изменяются. - В FileSize нет специального значения. Значение
0в fileSize усекает размер файла до 0.
- Значение в поле метки времени (CreationTime, LastAccessTime, LastWriteTime и ChangeTime) означает, что текущая
- OpParams.RestartHydration.FileIdentity и OpParams.RestartHydration.FileIdentityLength являются необязательными. При указании новое удостоверение будет сохранено в файле . В противном случае текущее удостоверение файла останется.
Поставщик синхронизации вызывает этот API в случае, если он определяет, что данные на диске в заполнителе на самом деле недопустимы и не подходят для удовлетворения запросов ввода-вывода. Типичный сценарий заключается в том, что полученные данные по какой-либо причине не выполнили проверку контрольной суммы. Другой сценарий использования происходит, когда в процессе восстановления содержимое файла фактически было обновлено в облаке (и поставщик синхронизации не может получить содержимое журнала из облака, соответствующее локальной версии заполнителя).
После успешного перезапуска заполнитель будет полностью обезвожен и обновлен новыми метаданными, если таковые есть. Ожидающие пользовательские запросы ввода-вывода, если таковые имеются, будут обрабатываться повторно, как если бы они только что поступили, и в результате поставщик синхронизации получит новые обратные вызовы, которые выглядят точно так же, как и те, которые поставщик синхронизации получил ранее.
Однако если по какой-либо причине произошел сбой перезапуска, заполнитель может остаться в недетерминированном состоянии в зависимости от того, где произошла ошибка, и все ожидающие пользовательские запросы ввода-вывода в заполнитель будут завершаться с той же ошибкой. Единственное, что платформа гарантирует в этом случае, это то, что будущий доступ пользователя к файлу заполнителя будет активировать те же обратные вызовы.
DUMMYUNIONNAME.RestartHydration.Flags
Флаги для перезапуска гидратации заполнителей. Для этого параметра необходимо задать значение CF_OPERATION_RESTART_HYDRATION_FLAG_NONE или CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC. Если указано CF_OPERATION_RESTART_HYDRATION_FLAG_MARK_IN_SYNC , заполнитель будет помечен как синхронизированный после успешной операции RESTART_HYDRATION . Дополнительные сведения см. в разделе CF_OPERATION_RESTART_HYDRATION_FLAGS .
DUMMYUNIONNAME.RestartHydration.FsMetadata
Необязательный элемент. Содержит обновления метаданных файлов. При указании:
- Значение в поле метки времени (CreationTime, LastAccessTime, LastWriteTime и ChangeTime) означает, что текущая
0метка времени в файле не изменяется. - Значение
0в FileAttributes означает отсутствие изменений в текущих атрибутах файла в файле. - В FileSize нет специального значения. Значение
0в fileSize усекает размер файла до 0.
DUMMYUNIONNAME.RestartHydration.FileIdentity
Необязательный элемент. При указании идентификатор файла обновляется до этого значения. В противном случае он остается прежним.
DUMMYUNIONNAME.RestartHydration.FileIdentityLength
Необязательный элемент. Указывает длину FileIdentity.
DUMMYUNIONNAME.TransferPlaceholders
DUMMYUNIONNAME.TransferPlaceholders.Flags
Флаги для передачи заполнителей. Дополнительные сведения см. в разделе CF_OPERATION_TRANSFER_PLACEHOLDERS_FLAGS .
DUMMYUNIONNAME.TransferPlaceholders.CompletionStatus
Состояние завершения операции переноса заполнителей.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderTotalCount
Общее количество заполнителей.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderArray
Массив заполнителей для передачи.
DUMMYUNIONNAME.TransferPlaceholders.PlaceholderCount
Количество переносимых заполнителей.
DUMMYUNIONNAME.TransferPlaceholders.EntriesProcessed
Обработанные заполнители.
DUMMYUNIONNAME.AckDehydrate
DUMMYUNIONNAME.AckDehydrate.Flags
Флаги подтверждения обезвоженных данных. Дополнительные сведения см. в разделе CF_OPERATION_ACK_DEHYDRATE_FLAGS .
DUMMYUNIONNAME.AckDehydrate.CompletionStatus
Состояние завершения операции подтверждения дегидратации. Для этого параметра необходимо задать значение STATUS_SUCCESS , если поставщик синхронизации может разрешить процесс обезвоживания. Если поставщик синхронизации намерен запретить обезвоживание по какой-либо причине, он должен установить состояние STATUS_CLOUD_FILE_* в CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
DUMMYUNIONNAME.AckDehydrate.FileIdentity
Идентификатор файла заполнителя для подтверждения обезвоженных данных.
DUMMYUNIONNAME.AckDehydrate.FileIdentityLength
Длина FileIdentity в байтах.
DUMMYUNIONNAME.AckRename
DUMMYUNIONNAME.AckRename.Flags
Подтвердите переименование флагов заполнителей. Дополнительные сведения см . в разделе CF_OPERATION_ACK_RENAME_FLAGS .
DUMMYUNIONNAME.AckRename.CompletionStatus
Состояние завершения операции подтверждения переименования. Для этого параметра необходимо задать значение STATUS_SUCCESS , если поставщик синхронизации может разрешить продолжение операции переименования. Если поставщик синхронизации намерен запретить переименование по какой-либо причине, он должен задать состояние STATUS_CLOUD_FILE_* в CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
DUMMYUNIONNAME.AckDelete
DUMMYUNIONNAME.AckDelete.Flags
Подтвердите удаление флагов. Дополнительные сведения см. в разделе CF_OPERATION_ACK_DELETE_FLAGS .
DUMMYUNIONNAME.AckDelete.CompletionStatus
Состояние завершения операции подтверждения удаления. Для этого параметра необходимо задать значение STATUS_SUCCESS , если поставщик синхронизации может разрешить операцию удаления. Если поставщик синхронизации намерен запретить удаление по какой-либо причине, он должен задать состояние STATUS_CLOUD_FILE_* в CompletionStatus. Любой код состояния, возвращаемый за пределами диапазона STATUS_CLOUD_FILE_* , за исключением STATUS_SUCCESS , будет преобразован платформой в STATUS_CLOUD_FILE_UNSUCCESSFUL .
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 10 версии 1709 [только классические приложения] |
| Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
| Верхняя часть | cfapi.h |