estructura CF_CALLBACK_PARAMETERS (cfapi.h)
Esta estructura contiene parámetros específicos de devolución de llamada, como desplazamiento de archivo, longitud, marcas, etc.
Sintaxis
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;
Members
ParamSize
ParamSize se establece en función de la devolución de llamada que se realiza.
Devolución de llamada | ParamSize Information |
---|---|
CF_CALLBACK_TYPE_FETCH_DATA | Establezca en el tamaño de FetchData más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_VALIDATE_DATA | Establezca en el tamaño de ValidateData más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA | Establezca en el tamaño de Cancel.FetchData más el tamaño de dos ULONG s. |
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS | Establezca en el tamaño de FetchPlaceholders más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS | Establezca en el tamaño de dos ULONG s. |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION | Establezca en el tamaño de OpenCompletion más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION | se establece en el tamaño de CloseCompletion más el tamaño de .ULONG |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE | Establezca en el tamaño de Dehydrate más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION | Establezca en el tamaño de DehydrateCompletion más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_DELETE | Establezca en el tamaño de Delete más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION | Establezca en el tamaño de DeleteCompletion más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_RENAME | Establezca en el tamaño de Rename más el tamaño de un .ULONG |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION | Establezca en el tamaño de RenameCompletion más el tamaño de un .ULONG |
DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel
DUMMYUNIONNAME.Cancel.Flags
Las marcas se pueden establecer en las marcas siguientes:
- CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT se establece si la solicitud de usuario se cancela como resultado de la expiración del temporizador de 60 segundos.
- CF_CALLBACK_CANCEL_FLAG_IO_ABORTED se establece si la solicitud de usuario se cancela como resultado de que el usuario termine explícitamente la hidratación de la notificación del sistema de descarga iniciada por la aplicación.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset
Desplazamiento, en bytes, para especificar el intervalo de datos de archivo que ya no es necesario. Tenga en cuenta que esto puede coincidir con RequiredFileOffset de la captura correspondiente, pero también puede ser un subconjunto. Si es un subconjunto, los datos fuera del intervalo de cancelación siguen siendo necesarios, por ejemplo, para satisfacer las operaciones de E/S pendientes que llegaron posteriormente.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length
Longitud, en bytes, de los datos de archivo que ya no son necesarios. Tenga en cuenta que esto puede coincidir con RequiredLength de la captura correspondiente, pero también puede ser un subconjunto. Si es un subconjunto, los datos fuera del intervalo de cancelación siguen siendo necesarios, por ejemplo, para satisfacer las operaciones de E/S pendientes que llegaron posteriormente.
DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.FetchData.Flags
Las marcas se pueden establecer en los valores siguientes:
- CF_CALLBACK_FETCH_DATA_FLAG_RECOVER se establece si la devolución de llamada se invoca como resultado del proceso de hidratación interrumpido previamente, debido al apagado inclean del proveedor de sincronización o la pérdida de energía, etc.
- CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION se establece si la devolución de llamada se invoca como resultado de una llamada a CfHydratePlaceholder.
DUMMYUNIONNAME.FetchData.RequiredFileOffset
Desplazamiento, en bytes, para especificar el intervalo de datos de archivo que el filtro necesita absolutamente para satisfacer las solicitudes de E/S pendientes.
DUMMYUNIONNAME.FetchData.RequiredLength
Longitud, en bytes, de los datos de archivo que el filtro necesita absolutamente para satisfacer las solicitudes de E/S pendientes.
DUMMYUNIONNAME.FetchData.OptionalFileOffset
El desplazamiento, en bytes, proporcionado como una sugerencia sobre un rango más amplio de datos de archivo que podrían proporcionarse útilmente a la plataforma, en caso de que el proveedor de sincronización prefiera proporcionar datos en fragmentos más grandes. Normalmente, el intervalo opcional será el intervalo contiguo máximo que no está presente actualmente en el marcador de posición. Esto es opcional y se puede usar si el proveedor de sincronización prefiere trabajar con segmentos de datos más grandes.
DUMMYUNIONNAME.FetchData.OptionalLength
La longitud, en bytes, proporcionada como sugerencia para un rango más amplio de datos de archivo que podrían proporcionarse útilmente a la plataforma, en caso de que el proveedor de sincronización prefiera proporcionar datos en fragmentos más grandes. Normalmente, el intervalo opcional será el intervalo contiguo máximo que no está presente actualmente en el marcador de posición. Esto es opcional y se puede usar si el proveedor de sincronización prefiere trabajar con segmentos de datos más grandes.
Una longitud de -1, indicada como CF_EOF
, significa infinito (es decir, al final del archivo).
No es necesario que el proveedor de sincronización devuelva todos los datos necesarios a la vez. Tampoco hay ningún requisito para que el proveedor de sincronización devuelva los datos dentro del intervalo requerido o del intervalo opcional. La plataforma garantiza que, en ninguna circunstancia, los datos de archivo modificados o no asincrónicos se clobbereden debido a una operación de CF_OPERATION_TYPE_TRANSFER_DATA no válida. Sin embargo, los datos devueltos deben estar alineados a 4 KB tanto para el desplazamiento como para la longitud, a menos que el intervalo devuelto finalice al final del archivo, en cuyo caso no es necesario que la longitud sea de 4 KB si el intervalo termina en o más allá del final del archivo.
DUMMYUNIONNAME.FetchData.LastDehydrationTime
Hora del sistema en la que se deshidrata el archivo en la nube en cuestión. Es un recuento de intervalos de 100 nanosegundos desde el 1 de enero de 1601.
DUMMYUNIONNAME.FetchData.LastDehydrationReason
Miembro de la enumeración CF_CALLBACK_DEHYDRATION_REASON que especifica el motivo por el que el archivo se deshidrató por última vez.
LastDehydrationReason puede ser uno de los siguientes:
Motivo | Descripción |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_NEVER | El archivo en la nube nunca se ha deshidratado después de su creación. |
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | El usuario deshidrata explícitamente el archivo en la nube. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC | La plataforma ha agotado el archivo en la nube en función de las directivas definidas por el usuario. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE | La plataforma ha deshidratado el archivo en la nube al experimentar poco espacio en disco en el volumen donde reside este archivo. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE | La plataforma ha deshidratado este archivo al reclamar espacio en disco para actualizar el sistema operativo. |
DUMMYUNIONNAME.ValidateData
DUMMYUNIONNAME.ValidateData.Flags
Marcas de validación de datos. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION se establece si la devolución de llamada se invoca como resultado de una llamada a CfHydratePlaceholder.
DUMMYUNIONNAME.ValidateData.RequiredFileOffset
Desplazamiento, en bytes, para especificar el intervalo de datos de archivo que se va a validar.
DUMMYUNIONNAME.ValidateData.RequiredLength
Longitud, en bytes, del intervalo de datos de archivo que se deben validar. Una longitud de -1, indicada como CF_EOF
, significa infinito (es decir, al final del archivo).
No es necesario que el proveedor de sincronización confirme todos los datos necesarios a la vez. Tampoco hay ningún requisito para que el proveedor de sincronización confirme los datos dentro del intervalo necesario. La plataforma garantiza que, en ninguna circunstancia, los datos de archivo modificados o no asincrónicos se clobbereden debido a una operación de CF_OPERATION_TYPE_ACT_DATA no válida. Sin embargo, los datos confirmados deben estar alineados a 4 KB tanto para el desplazamiento como para la longitud, a menos que el intervalo devuelto finalice al final del archivo, en cuyo caso no es necesario que la longitud sea de 4 KB si el intervalo termina en o más allá del final del archivo.
DUMMYUNIONNAME.FetchPlaceholders
DUMMYUNIONNAME.FetchPlaceholders.Flags
Este valor flags debe establecerse en CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.
DUMMYUNIONNAME.FetchPlaceholders.Pattern
Un patrón de archivo estándar de Windows que puede contener caracteres comodín (?
, *
). A menudo, el patrón será *
pero podría ser más específico. Se espera que el proveedor de sincronización empiece a transferir información de marcador de posición para todos los archivos del directorio mediante CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. El proveedor de sincronización debe transferir todos los marcadores de posición que coincidan con el patrón, pero no necesariamente en una sola captura, como requisito mínimo. Además, el proveedor de sincronización puede optar por transferir marcadores de posición que no coincidan con el patrón.
DUMMYUNIONNAME.OpenCompletion
DUMMYUNIONNAME.OpenCompletion.Flags
Marcas de finalización abiertas de marcador de posición. Se puede establecer en una de las dos marcas siguientes:
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN se establece si los metadatos del marcador de posición están dañados.
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED se establece si los metadatos del marcador de posición son de una versión anterior y no admitida.
DUMMYUNIONNAME.CloseCompletion
DUMMYUNIONNAME.CloseCompletion.Flags
Marcador de posición cerrar marcas de finalización. Se puede establecer en CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED si el marcador de posición se elimina como resultado del cierre.
DUMMYUNIONNAME.Dehydrate
DUMMYUNIONNAME.Dehydrate.Flags
Marcas de deshidratación de marcador de posición. Se puede establecer en CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND si un servicio en segundo plano del sistema inicia la solicitud de deshidratación.
DUMMYUNIONNAME.Dehydrate.Reason
El motivo es un miembro de la enumeración CF_CALLBACK_DEHYDRATION_REASON que especifica el motivo por el que el marcador de posición se está deshidratando. Puede ser uno de los siguientes valores:
Motivo | Descripción |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | El usuario solicita explícitamente que rehidrata el archivo en la nube. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | La plataforma agota el archivo en la nube periódicamente en función de las directivas definidas por el usuario. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | La plataforma está experimentando poco espacio en disco en el volumen donde reside este archivo en la nube. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | La plataforma reclama espacio en disco para actualizar el sistema operativo. |
DUMMYUNIONNAME.DehydrateCompletion
DUMMYUNIONNAME.DehydrateCompletion.Flags
Marcas de finalización de deshidratación de marcador de posición. Se puede establecer en los valores siguientes:
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND se establece si un servicio en segundo plano del sistema inicia la solicitud de deshidratación.
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED se establece si el placer se hidrata antes de la solicitud de deshidratación.
DUMMYUNIONNAME.DehydrateCompletion.Reason
El motivo es un miembro de la enumeración CF_CALLBACK_DEHYDRATION_REASON que especifica el motivo por el que el marcador de posición se deshidrata. Puede ser uno de los siguientes valores:
Motivo | Descripción |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | El usuario solicita explícitamente que rehidrata el archivo en la nube. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | La plataforma agota el archivo en la nube periódicamente en función de las directivas definidas por el usuario. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | La plataforma está experimentando poco espacio en disco en el volumen donde reside este archivo en la nube. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | La plataforma reclama espacio en disco para actualizar el sistema operativo. |
DUMMYUNIONNAME.Delete
DUMMYUNIONNAME.Delete.Flags
Marcas de eliminación de marcador de posición. Se establece en CF_CALLBACK_DELETE_FLAG_NONE.
DUMMYUNIONNAME.DeleteCompletion
DUMMYUNIONNAME.DeleteCompletion.Flags
Marcas completas de eliminación de marcador de posición. Se establece en CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.Rename
DUMMYUNIONNAME.Rename.Flags
Cambie el nombre de las marcas de marcador de posición. Se puede establecer en los valores siguientes:
- CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY se establece si el marcador de posición es un directorio.
- CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE se establece si el vínculo cuyo nombre se va a cambiar o se mueve está dentro de una raíz de sincronización administrada por el proceso de sincronización.
- CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE se establece si el destino de cambio de nombre o movimiento está en la misma raíz de sincronización de la ruta de acceso de origen.
DUMMYUNIONNAME.Rename.TargetPath
Ruta de acceso de destino de cambio de nombre o movimiento completa en relación con el volumen.
DUMMYUNIONNAME.RenameCompletion
DUMMYUNIONNAME.RenameCompletion.Flags
Marcas de marcador de posición de finalización de cambio de nombre. Se establece en CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.RenameCompletion.SourcePath
Ruta de acceso de vínculo de origen completa relativa al volumen.
Requisitos
Cliente mínimo compatible | Windows 10, versión 1709 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2016 [solo aplicaciones de escritorio] |
Encabezado | cfapi.h |