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 ULONGs.
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 ULONGs.
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_EOFcomme , 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_EOFcomme , 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

Voir aussi

CfHydratePlaceholder

CF_CALLBACK_TYPE

CF_CALLBACK_DEHYDRATION_REASON