structure CF_CALLBACK_PARAMETERS (cfapi.h)
Cette structure contient des paramètres spécifiques au rappel, tels que le décalage de fichier, la longueur, les indicateurs, etc.
Syntaxe
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;
Membres
ParamSize
ParamSize est défini en fonction du rappel effectué.
Rappel | Analyser les informations |
---|---|
CF_CALLBACK_TYPE_FETCH_DATA | Définissez sur la taille de FetchData plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_VALIDATE_DATA | Définissez sur la taille de ValidateData plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA | Définissez sur la taille de Cancel.FetchData plus la taille de deux ULONG s. |
CF_CALLBACK_TYPE_FETCH_PLACHOLDERS | Définissez sur la taille de FetchPlaceholders plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACHOLDERS | Défini sur la taille de deux ULONG s. |
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION | Définissez sur la taille de OpenCompletion plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION | défini sur la taille de CloseCompletion plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE | Définissez sur la taille de Dehydrate plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION | Définissez sur la taille de DehydrateCompletion plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DELETE | Définissez sur la taille de Delete plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION | Définissez sur la taille de DeleteCompletion plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_RENAME | Définissez sur la taille de Rename plus la taille d’un ULONG . |
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION | Définissez sur la taille de RenameCompletion plus la taille d’un ULONG . |
DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel
DUMMYUNIONNAME.Cancel.Flags
Les indicateurs peuvent être définis sur les indicateurs suivants :
- CF_CALLBACK_CANCEL_FLAG_IO_TIMEOUT est défini si la demande de l’utilisateur est annulée à la suite de l’expiration du minuteur de 60 secondes.
- CF_CALLBACK_CANCEL_FLAG_IO_ABORTED est défini si la demande de l’utilisateur est annulée en raison de la fin explicite de l’hydratation à partir du toast de téléchargement initié par l’application.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.FileOffset
Décalage, en octets, pour spécifier la plage de données de fichier qui n’est plus nécessaire. Notez qu’il peut correspondre à RequiredFileOffset de la récupération correspondante, mais il peut également s’agir d’un sous-ensemble. S’il s’agit d’un sous-ensemble, les données en dehors de la plage d’annulation sont toujours nécessaires, par exemple pour satisfaire les opérations d’E/S en suspens qui sont arrivées par la suite.
DUMMYUNIONNAME.Cancel.DUMMYUNIONNAME.FetchData.Length
Longueur, en octets, des données de fichier qui ne sont plus nécessaires. Notez que cela peut correspondre à RequiredLength de la récupération correspondante, mais peut également être un sous-ensemble. S’il s’agit d’un sous-ensemble, les données en dehors de la plage d’annulation sont toujours nécessaires, par exemple pour satisfaire les opérations d’E/S en suspens qui sont arrivées par la suite.
DUMMYUNIONNAME.FetchData
DUMMYUNIONNAME.FetchData.Flags
Les indicateurs peuvent être définis sur les valeurs suivantes :
- CF_CALLBACK_FETCH_DATA_FLAG_RECOVER est défini si le rappel est appelé à la suite d’un processus d’hydratation précédemment interrompu, en raison d’un arrêt impur du fournisseur de synchronisation ou d’une perte de courant, etc.
- CF_CALLBACK_FETCH_DATA_FLAG_EXPLICIT_HYDRATION est défini si le rappel est appelé à la suite d’un appel à CfHydratePlaceholder.
DUMMYUNIONNAME.FetchData.RequiredFileOffset
Décalage, en octets, pour spécifier la plage de données de fichier qui est absolument nécessaire par le filtre afin de répondre aux demandes d’E/S en suspens.
DUMMYUNIONNAME.FetchData.RequiredLength
Longueur, en octets, des données de fichier qui sont absolument nécessaires par le filtre pour répondre aux demandes d’E/S en suspens.
DUMMYUNIONNAME.FetchData.OptionalFileOffset
Décalage, en octets, fourni comme indicateur d’une plage plus large de données de fichier qui pourraient utilement être données à la plateforme, au cas où le fournisseur de synchronisation préférerait donner des données en blocs plus grands. En règle générale, la plage facultative est la plage contiguë maximale qui n’est pas présente actuellement dans l’espace réservé. Cette option est facultative et peut être utilisée si le fournisseur de synchronisation préfère utiliser des segments de données plus importants.
DUMMYUNIONNAME.FetchData.OptionalLength
Longueur, en octets, fournie comme indicateur d’une plage plus large de données de fichier qui pourraient utilement être données à la plateforme, au cas où le fournisseur de synchronisation préférerait donner des données en blocs plus grands. En règle générale, la plage facultative est la plage contiguë maximale qui n’est pas présente actuellement dans l’espace réservé. Cette option est facultative et peut être utilisée si le fournisseur de synchronisation préfère utiliser des segments de données plus importants.
Une longueur de -1, notée CF_EOF
comme , signifie infini (c’est-à-dire à la fin du fichier).
Il n’est pas nécessaire que le fournisseur de synchronisation retourne toutes les données requises en même temps. Il n’est pas non plus nécessaire que le fournisseur de synchronisation retourne les données au sein de la plage requise ou de la plage facultative. La plateforme garantit qu’en aucun cas les données de fichier modifiées/non synchronisées ne seront bloquées en raison d’une opération de CF_OPERATION_TYPE_TRANSFER_DATA non valide. Toutefois, les données retournées doivent être alignées de 4 Ko pour le décalage et la longueur, sauf si la plage retournée se termine à la fin du fichier, auquel cas la longueur n’est pas obligatoirement alignée de 4 Ko si la plage se termine à la fin du fichier ou au-delà.
DUMMYUNIONNAME.FetchData.LastDehydrationTime
Heure système à laquelle le fichier cloud en question a été déshydraté. Il s’agit d’un décompte d’intervalles de 100 nanosecondes depuis le 1er janvier 1601.
DUMMYUNIONNAME.FetchData.LastDehydrationReason
Un membre du CF_CALLBACK_DEHYDRATION_REASON énumération spécifiant la raison pour laquelle le fichier a été déshydraté pour la dernière fois.
LastDehydrationReason peut être l’un des éléments suivants :
Motif | Description |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_NEVER | Le fichier cloud n’a jamais été déshydraté après sa création. |
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | L’utilisateur a explicitement déshydraté le fichier cloud. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_PERIODIC | La plateforme a vieilli le fichier cloud en fonction de stratégies définies par l’utilisateur. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOWSPACE | La plateforme a déshydraté le fichier cloud en cas de manque d’espace disque sur le volume où réside ce fichier. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_UPGRADE | La plateforme a déshydraté ce fichier lors de la récupération de l’espace disque afin de mettre à niveau le système d’exploitation. |
DUMMYUNIONNAME.ValidateData
DUMMYUNIONNAME.ValidateData.Flags
Indicateurs de validation des données. CF_CALLBACK_VALIDATE_DATA_FLAG_EXPLICIT_HYDRATION est défini si le rappel est appelé à la suite d’un appel à CfHydratePlaceholder.
DUMMYUNIONNAME.ValidateData.RequiredFileOffset
Décalage, en octets, pour spécifier la plage de données de fichier à valider.
DUMMYUNIONNAME.ValidateData.RequiredLength
Longueur, en octets, de la plage de données de fichier qui doit être validée. Une longueur de -1, notée CF_EOF
comme , signifie infini (c’est-à-dire à la fin du fichier).
Il n’est pas nécessaire que le fournisseur de synchronisation reconnaisse toutes les données requises en même temps. Il n’est pas non plus nécessaire que le fournisseur de synchronisation reconnaisse les données dans la plage requise. La plateforme garantit qu’en aucun cas les données de fichier modifiées/non synchronisées ne seront clobbeées en raison d’une opération de CF_OPERATION_TYPE_ACT_DATA non valide. Toutefois, les données reconnues doivent être alignées de 4 Ko pour le décalage et la longueur, sauf si la plage retournée se termine à la fin du fichier, auquel cas la longueur n’est pas requise pour être alignée de 4 Ko si la plage se termine à la fin du fichier ou au-delà.
DUMMYUNIONNAME.FetchPlaceholders
DUMMYUNIONNAME.FetchPlaceholders.Flags
Cette valeur Flags doit être définie sur CF_CALLBACK_FETCH_PLACEHOLDERS_FLAG_NONE.
DUMMYUNIONNAME.FetchPlaceholders.Pattern
Modèle de fichier Windows standard qui peut contenir des caractères génériques (?
, *
). Souvent, le modèle sera *
, mais il pourrait être plus spécifique. Le fournisseur de synchronisation doit commencer à transférer les informations d’espace réservé pour tous les fichiers du répertoire à l’aide de CF_OPERATION_TYPE_TRANSFER_PLACEHOLDERS. Le fournisseur de synchronisation doit transférer tous les espaces réservés correspondant au modèle, mais pas nécessairement en une seule fois, comme condition minimale. Le fournisseur de synchronisation peut également choisir de transférer des espaces réservés qui ne correspondent pas au modèle.
DUMMYUNIONNAME.OpenCompletion
DUMMYUNIONNAME.OpenCompletion.Flags
Indicateurs d’achèvement ouverts de l’espace réservé. Il peut être défini sur l’un des deux indicateurs suivants :
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNKNOWN est défini si les métadonnées de l’espace réservé sont endommagées.
- CF_CALLBACK_OPEN_COMPLETION_FLAG_PLACEHOLDER_UNSUPPORTED est défini si les métadonnées de l’espace réservé sont d’une version antérieure et non prise en charge.
DUMMYUNIONNAME.CloseCompletion
DUMMYUNIONNAME.CloseCompletion.Flags
Indicateurs de fermeture de l’espace réservé. Il peut être défini sur CF_CALLBACK_CLOSE_COMPLETION_FLAG_DELETED si l’espace réservé est supprimé à la suite de la fermeture.
DUMMYUNIONNAME.Dehydrate
DUMMYUNIONNAME.Dehydrate.Flags
Indicateurs de déshydratation d’espace réservé. Il peut être défini sur CF_CALLBACK_DEHYDRATE_FLAG_BACKGROUND si la demande de déshydratation est lancée par un service en arrière-plan système.
DUMMYUNIONNAME.Dehydrate.Reason
La raison est un membre de l’énumération CF_CALLBACK_DEHYDRATION_REASON qui spécifie la raison pour laquelle l’espace réservé est déshydraté. Ce peut être l’une des valeurs suivantes :
Motif | Description |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | L’utilisateur demande explicitement de déshydrater le fichier cloud. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | La plateforme vieillit régulièrement le fichier cloud en fonction des stratégies définies par l’utilisateur. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | L’espace disque de la plateforme est faible sur le volume où réside ce fichier cloud. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | La plateforme récupère de l’espace disque afin de mettre à niveau le système d’exploitation. |
DUMMYUNIONNAME.DehydrateCompletion
DUMMYUNIONNAME.DehydrateCompletion.Flags
Indicateurs d’achèvement de la déshydratation de l’espace réservé. Il peut être défini sur les valeurs suivantes :
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_BACKGROUND est défini si la demande de déshydratation est lancée par un service en arrière-plan système.
- CF_CALLBACK_DEHYDRATE_COMPLETION_FLAG_DEHYDRATED est défini si le placer a été hydraté avant la demande de déshydratation.
DUMMYUNIONNAME.DehydrateCompletion.Reason
La raison est un membre de l’énumération CF_CALLBACK_DEHYDRATION_REASON qui spécifie la raison pour laquelle l’espace réservé a été déshydraté. Ce peut être l’une des valeurs suivantes :
Motif | Description |
---|---|
CF_CALLBACK_DEHYDRATE_REASON_USER_MANUAL | L’utilisateur demande explicitement de déshydrater le fichier cloud. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_INACTIVITY | La plateforme vieillit régulièrement le fichier cloud en fonction des stratégies définies par l’utilisateur. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_LOW_SPACE | L’espace disque de la plateforme est faible sur le volume où réside ce fichier cloud. |
CF_CALLBACK_DEHYDRATE_REASON_SYSTEM_OS_UPGRADE | La plateforme récupère de l’espace disque afin de mettre à niveau le système d’exploitation. |
DUMMYUNIONNAME.Delete
DUMMYUNIONNAME.Delete.Flags
Indicateurs de suppression d’espace réservé. Il est défini sur CF_CALLBACK_DELETE_FLAG_NONE.
DUMMYUNIONNAME.DeleteCompletion
DUMMYUNIONNAME.DeleteCompletion.Flags
La suppression de l’espace réservé complète les indicateurs. Il est défini sur CF_CALLBACK_DELETE_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.Rename
DUMMYUNIONNAME.Rename.Flags
Renommez les indicateurs d’espace réservé. Il peut être défini sur les valeurs suivantes :
- CF_CALLBACK_RENAME_FLAG_IS_DIRECTORY est défini si l’espace réservé est un répertoire.
- CF_CALLBACK_RENAME_FLAG_SOURCE_IN_SCOPE est défini si le lien à renommer ou à déplacer se trouve dans une racine de synchronisation gérée par le processus de synchronisation.
- CF_CALLBACK_RENAME_FLAG_TARGET_IN_SCOPE est défini si la cible de renommage ou de déplacement se trouve dans la même racine de synchronisation du chemin source.
DUMMYUNIONNAME.Rename.TargetPath
Chemin cible de renommage/déplacement complet relatif au volume.
DUMMYUNIONNAME.RenameCompletion
DUMMYUNIONNAME.RenameCompletion.Flags
Indicateurs de l’espace réservé de fin de nom. Il est défini sur CF_CALLBACK_RENAME_COMPLETION_FLAG_NONE.
DUMMYUNIONNAME.RenameCompletion.SourcePath
Chemin de lien source complet relatif au volume.
Spécifications
Client minimal pris en charge | Windows 10, version 1709 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2016 [applications de bureau uniquement] |
En-tête | cfapi.h |