Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта структура содержит параметры обратного вызова, такие как смещение файла, длина, флаги и т. д.
Синтаксис
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 |