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


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

Эта структура содержит параметры обратного вызова, такие как смещение файла, длина, флаги и т. д.

Синтаксис

typedef struct CF_CALLBACK_PARAMETERS {
  ULONG ParamSize;
  union {
    struct {
      CF_CALLBACK_CANCEL_FLAGS Flags;
      union {
        struct {
          LARGE_INTEGER FileOffset;
          LARGE_INTEGER Length;
        } FetchData;
      } DUMMYUNIONNAME;
    } Cancel;
    struct {
      CF_CALLBACK_FETCH_DATA_FLAGS   Flags;
      LARGE_INTEGER                  RequiredFileOffset;
      LARGE_INTEGER                  RequiredLength;
      LARGE_INTEGER                  OptionalFileOffset;
      LARGE_INTEGER                  OptionalLength;
      LARGE_INTEGER                  LastDehydrationTime;
      CF_CALLBACK_DEHYDRATION_REASON LastDehydrationReason;
    } FetchData;
    struct {
      CF_CALLBACK_VALIDATE_DATA_FLAGS Flags;
      LARGE_INTEGER                   RequiredFileOffset;
      LARGE_INTEGER                   RequiredLength;
    } ValidateData;
    struct {
      CF_CALLBACK_FETCH_PLACEHOLDERS_FLAGS Flags;
      PCWSTR                               Pattern;
    } FetchPlaceholders;
    struct {
      CF_CALLBACK_OPEN_COMPLETION_FLAGS Flags;
    } OpenCompletion;
    struct {
      CF_CALLBACK_CLOSE_COMPLETION_FLAGS Flags;
    } CloseCompletion;
    struct {
      CF_CALLBACK_DEHYDRATE_FLAGS    Flags;
      CF_CALLBACK_DEHYDRATION_REASON Reason;
    } Dehydrate;
    struct {
      CF_CALLBACK_DEHYDRATE_COMPLETION_FLAGS Flags;
      CF_CALLBACK_DEHYDRATION_REASON         Reason;
    } DehydrateCompletion;
    struct {
      CF_CALLBACK_DELETE_FLAGS Flags;
    } Delete;
    struct {
      CF_CALLBACK_DELETE_COMPLETION_FLAGS Flags;
    } DeleteCompletion;
    struct {
      CF_CALLBACK_RENAME_FLAGS Flags;
      PCWSTR                   TargetPath;
    } Rename;
    struct {
      CF_CALLBACK_RENAME_COMPLETION_FLAGS Flags;
      PCWSTR                              SourcePath;
    } RenameCompletion;
  } DUMMYUNIONNAME;
} CF_CALLBACK_PARAMETERS;

Члены

ParamSize

Параметр ParamSize задается на основе выполняемого обратного вызова.

Обратный вызов ParamSize Information
CF_CALLBACK_TYPE_FETCH_DATA Присвойте размеру FetchData плюс размер .ULONG
CF_CALLBACK_TYPE_VALIDATE_DATA Присвойте размеру ValidateData плюс размер .ULONG
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA Задайте для параметра размер плюс Cancel.FetchData размер двух ULONGs.
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS Присвойте размеру FetchPlaceholders плюс размер .ULONG
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS Задайте размер 2 ULONGс.
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION Присвойте размеру OpenCompletion плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION задайте для размера плюс CloseCompletion размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE Присвойте размеру Dehydrate плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION Присвойте размеру DehydrateCompletion плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_DELETE Присвойте размеру Delete плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION Присвойте размеру DeleteCompletion плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_RENAME Присвойте размеру Rename плюс размер .ULONG
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION Присвойте размеру RenameCompletion плюс размер .ULONG

DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel

DUMMYUNIONNAME.Cancel.Flags

Для флагов можно задать следующие флаги:

  • CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT устанавливается, если запрос пользователя отменен в результате истечения срока действия таймера в 60 секунд.
  • CF_CALLBACK_CANCEL_FLAG_IO_ABORTED устанавливается, если запрос пользователя отменен в результате явного завершения восстановления из всплывающего уведомления о загрузке, инициированного приложением.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset

Смещение (в байтах) для указания диапазона данных файла, который больше не требуется. Обратите внимание, что это может соответствовать параметру RequiredFileOffset из соответствующей выборки, но также может быть подмножеством. Если это подмножество, то данные за пределами диапазона отмены по-прежнему необходимы, например для выполнения невыполненных операций ввода-вывода, которые поступили впоследствии.

DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length

Длина в байтах данных файла, которые больше не требуются. Обратите внимание, что это может соответствовать RequiredLength из соответствующей выборки, но также может быть подмножеством. Если это подмножество, то данные за пределами диапазона отмены по-прежнему необходимы, например для выполнения невыполненных операций ввода-вывода, которые поступили впоследствии.

DUMMYUNIONNAME.FetchData

DUMMYUNIONNAME.FetchData.Flags

Для флагов можно задать следующие значения:

  • CF_CALLBACK_FETCH_DATA_FLAG_RECOVER устанавливается, если обратный вызов вызывается в результате ранее прерванного процесса восстановления из-за нечистого завершения работы поставщика синхронизации или потери питания и т. д.
  • CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION задается, если обратный вызов вызывается в результате вызова CfHydratePlaceholder.

DUMMYUNIONNAME.FetchData.RequiredFileOffset

Смещение (в байтах) для указания диапазона данных файла, который абсолютно необходим фильтру для удовлетворения невыполненных запросов ввода-вывода.

DUMMYUNIONNAME.FetchData.RequiredLength

Длина (в байтах) данных файла, которая абсолютно необходима фильтру для удовлетворения невыполненных запросов ввода-вывода.

DUMMYUNIONNAME.FetchData.OptionalFileOffset

Смещение (в байтах) предоставляется в качестве указания на более широкий диапазон файловых данных, которые можно было бы предоставить платформе, если поставщик синхронизации предпочитает предоставлять данные большими блоками. Обычно необязательным диапазоном является максимальный смежный диапазон, который в настоящее время отсутствует в заполнителье. Это необязательный параметр, и его можно использовать, если поставщик синхронизации предпочитает работать с большими сегментами данных.

DUMMYUNIONNAME.FetchData.OptionalLength

Длина (в байтах) предоставляется в качестве указания на более широкий диапазон файловых данных, которые можно было бы предоставить платформе, на случай, если поставщик синхронизации предпочитает предоставлять данные большими блоками. Обычно необязательным диапазоном является максимальный смежный диапазон, который в настоящее время отсутствует в заполнителье. Это необязательный параметр, и его можно использовать, если поставщик синхронизации предпочитает работать с большими сегментами данных.

Длина -1, обозначенная как CF_EOF, означает бесконечность (т. е. до конца файла).

Поставщику синхронизации не требуется возвращать все необходимые данные одновременно. Поставщику синхронизации также не требуется возвращать данные в требуемом или необязательном диапазоне. Платформа гарантирует, что измененные или несинхронизованные данные файлов не будут загромождены из-за недопустимой операции CF_OPERATION_TYPE_TRANSFER_DATA . Однако возвращаемые данные должны быть выровнены по 4 КБ как по смещению, так и по длине, если возвращаемый диапазон не заканчивается в конце файла. В этом случае длина не требуется выровнять по 4 КБ, если диапазон заканчивается в конце файла или за его пределами.

DUMMYUNIONNAME.FetchData.LastDehydrationTime

Системное время обезвоженного облачного файла. Это число 100-наносекундных интервалов с 1 января 1601 года.

DUMMYUNIONNAME.FetchData.LastDehydrationReason

Элемент перечисления CF_CALLBACK_DEHYDRATION_REASON , указывающий причину последнего обезвоженного файла.

LastDehydrationReason может иметь один из следующих вариантов:

Причина Описание
CF_CALLBACK_DEHYDRATE_REASON_NEVER Облачный файл никогда не был обезвожен после его создания.
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL Пользователь явно обезвожен облачный файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC Платформа устарела для облачного файла на основе определяемых пользователем политик.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE Платформа обезвоживает облачный файл при нехватке места на диске тома, где находится этот файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE Платформа обезвожена этот файл при освобождении места на диске для обновления ОС.

DUMMYUNIONNAME.ValidateData

DUMMYUNIONNAME.ValidateData.Flags

Флаги проверки данных. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION задается, если обратный вызов вызывается в результате вызова CfHydratePlaceholder.

DUMMYUNIONNAME.ValidateData.RequiredFileOffset

Смещение (в байтах) для указания диапазона данных файла для проверки.

DUMMYUNIONNAME.ValidateData.RequiredLength

Длина (в байтах) диапазона данных файла, который требуется проверить. Длина -1, обозначенная как CF_EOF, означает бесконечность (т. е. до конца файла).

Поставщику синхронизации не требуется сразу подтверждать все необходимые данные. Кроме того, поставщику синхронизации не требуется подтверждать данные в любом из требуемых диапазонов. Платформа гарантирует, что измененные или несинхронизованные данные файла не будут загромождены из-за недопустимой операции CF_OPERATION_TYPE_ACT_DATA . Однако данные должны быть выровнены по 4 КБ для смещения и длины, если возвращаемый диапазон не заканчивается в конце файла. В этом случае длина не требуется выровнять по 4 КБ, если диапазон заканчивается в конце файла или за его пределами.

DUMMYUNIONNAME.FetchPlaceholders

DUMMYUNIONNAME.FetchPlaceholders.Flags

Для этого параметра Флаги должно быть задано значение CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.

DUMMYUNIONNAME.FetchPlaceholders.Pattern

Стандартный шаблон файла Windows, который может содержать подстановочные знаки (?, *). Часто шаблон будет иметь значение , * но он может быть более конкретным. Ожидается, что поставщик синхронизации начнет передавать сведения о заполнителях для всех файлов в каталоге с помощью CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. Поставщик синхронизации должен передать все заполнители, соответствующие шаблону, но не обязательно за один снимок, в качестве минимального требования. Поставщик синхронизации может дополнительно передать заполнители, не соответствующие шаблону.

DUMMYUNIONNAME.OpenCompletion

DUMMYUNIONNAME.OpenCompletion.Flags

Флаги открытого завершения заполнителя. Для него можно задать один из следующих двух флагов:

  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN устанавливается, если метаданные заполнителя повреждены.
  • CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED устанавливается, если метаданные заполнителя являются более старой и неподдерживаемой версией.

DUMMYUNIONNAME.CloseCompletion

DUMMYUNIONNAME.CloseCompletion.Flags

Заполнитель закрывает флаги завершения. Ему можно задать значение CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED , если заполнитель удаляется в результате закрытия.

DUMMYUNIONNAME.Dehydrate

DUMMYUNIONNAME.Dehydrate.Flags

Флаги дегидратации заполнителей. Ему можно задать значение CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND , если запрос на обезвоживание инициируется системной фоновой службой.

DUMMYUNIONNAME.Dehydrate.Reason

Причина является членом перечисления CF_CALLBACK_DEHYDRATION_REASON, указывая причину, по которой заполнитель обезвожен. Может иметь одно из следующих значений.

Причина Описание
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL Пользователь явно просит обезвожить облачный файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY Платформа периодически стареет облачный файл на основе определяемых пользователем политик.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE Платформа испытывает нехватку места на диске на томе, где находится этот облачный файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE Платформа освобождает место на диске для обновления ОС.

DUMMYUNIONNAME.DehydrateCompletion

DUMMYUNIONNAME.DehydrateCompletion.Flags

Флаги завершения дегидратации заполнителей. Для него можно задать следующие значения:

  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND устанавливается, если запрос на обезвоживание инициируется фоновой службой системы.
  • CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED устанавливается, если место было гидратировано до запроса на обезвоживание.

DUMMYUNIONNAME.DehydrateCompletion.Reason

Причина является членом перечисления CF_CALLBACK_DEHYDRATION_REASON, указывающего причину, по которой заполнитель был обезвожен. Может иметь одно из следующих значений.

Причина Описание
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL Пользователь явно просит обезвожить облачный файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY Платформа периодически стареет облачный файл на основе определяемых пользователем политик.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE Платформа испытывает нехватку места на диске на томе, где находится этот облачный файл.
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE Платформа освобождает место на диске для обновления ОС.

DUMMYUNIONNAME.Delete

DUMMYUNIONNAME.Delete.Flags

Флаги удаления заполнителей. Для него задано значение CF_CALLBACK_DELETE_FLAG_NONE.

DUMMYUNIONNAME.DeleteCompletion

DUMMYUNIONNAME.DeleteCompletion.Flags

Флаги завершения удаления заполнителей. Для него задано значение CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.Rename

DUMMYUNIONNAME.Rename.Flags

Переименуйте флаги заполнителей. Для него можно задать следующие значения:

  • CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY устанавливается, если заполнитель является каталогом.
  • CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE устанавливается, если переименовываемая или перемещаемая ссылка находится в корневом каталоге синхронизации, управляемом процессом синхронизации.
  • CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE устанавливается, если целевой объект переименования или перемещения находится в том же корне синхронизации исходного пути.

DUMMYUNIONNAME.Rename.TargetPath

Полный путь к переименованию или перемещению целевого объекта относительно тома.

DUMMYUNIONNAME.RenameCompletion

DUMMYUNIONNAME.RenameCompletion.Flags

Флаги заполнителей для переименования завершения. Для него задано значение CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.

DUMMYUNIONNAME.RenameCompletion.SourcePath

Полный путь к исходной ссылке относительно тома.

Требования

   
Минимальная версия клиента Windows 10, версия 1709 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Верхняя часть cfapi.h

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

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON