Поделиться через


структура CF_OPERATION_PARAMETERS (cfapi.h)

Подробные параметры операции с файлом-заполнителем или папкой. Данные, предоставляемые в этой структуре, зависят от 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.
  • 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

См. также раздел

CfExecute

CF_OPERATION_TRANSFER_DATA_FLAGS

CF_OPERATION_RETRIEVE_DATA_FLAGS