Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подробные параметры операции с файлом-заполнителем или папкой. Данные, предоставляемые в этой структуре, зависят от 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 |