énumération CF_CALLBACK_TYPE (cfapi.h)

Contient les différents types de rappels utilisés sur les fichiers ou dossiers d’espace réservé.

Syntax

typedef enum CF_CALLBACK_TYPE {
  CF_CALLBACK_TYPE_FETCH_DATA,
  CF_CALLBACK_TYPE_VALIDATE_DATA,
  CF_CALLBACK_TYPE_CANCEL_FETCH_DATA,
  CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS,
  CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE,
  CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_DELETE,
  CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION,
  CF_CALLBACK_TYPE_NOTIFY_RENAME,
  CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION,
  CF_CALLBACK_TYPE_NONE = 0xffffffff
} ;

Constantes

 
CF_CALLBACK_TYPE_FETCH_DATA
Ce rappel est utilisé pour demander au fournisseur de synchronisation une plage de données de fichier requise pour répondre à une demande d’E/S ou une demande d’hydratation explicite sur un espace réservé. L’implémentation de ce rappel est requise si le fournisseur de synchronisation spécifie une stratégie d’hydratation qui n’est pasALWAYS_FULL au moment de l’inscription racine de synchronisation.
CF_CALLBACK_TYPE_VALIDATE_DATA
Ce rappel est utilisé pour demander au fournisseur de synchronisation de reconnaître qu’une plage donnée de données de fichier, qui est déjà présente sur le disque à partir d’opérations CF_OPERATION_TYPE_TRANSFER_DATA antérieures, est valide et peut donc être utilisée par la plateforme pour répondre aux demandes d’E/S utilisateur. L’implémentation de ce rappel n’est requise que si le fournisseur de synchronisation spécifie le modificateur de stratégie d’hydratation VALIDATION_REQUIRED au moment de l’inscription racine de la synchronisation.
CF_CALLBACK_TYPE_CANCEL_FETCH_DATA
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’une plage de données de fichier n’est plus nécessaire, généralement parce que la demande d’origine a été annulée. Cela permet au fournisseur de synchronisation de cesser de dépenser ses efforts pour essayer d’obtenir les données (annuler les demandes réseau en suspens, etc.). L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_FETCH_PLACEHOLDERS
Ce rappel est utilisé pour demander au fournisseur de synchronisation de fournir des informations sur le contenu d’un répertoire d’espace réservé afin de satisfaire une opération de requête d’annuaire ou une tentative d’ouverture d’un fichier sous le répertoire. L’implémentation de ce rappel n’est requise que si le fournisseur de synchronisation spécifie une stratégie autre que CF_POPULATION_POLICY_ALWAYS_FULL au moment de l’inscription racine de la synchronisation.
CF_CALLBACK_TYPE_CANCEL_FETCH_PLACEHOLDERS
Ce rappel est utilisé pour informer le fournisseur de synchronisation que le contenu d’un répertoire d’espace réservé n’est plus nécessaire, généralement parce que la demande d’origine a été annulée. Cela permet au fournisseur de synchronisation de cesser de dépenser ses efforts pour essayer d’obtenir le contenu (annuler les demandes réseau en suspens, etc.). L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_FILE_OPEN_COMPLETION
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation a été ouvert avec succès pour l’accès en lecture/écriture/suppression. L’application utilisateur qui effectue l’ouverture n’est pas bloquée. Aucune réponse n’est attendue du fournisseur de synchronisation. Cette notification ne s’applique pas aux répertoires. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_FILE_CLOSE_COMPLETION
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation qui a été précédemment ouvert pour l’accès en lecture/écriture/suppression est désormais fermé. L’application utilisateur qui effectue la fermeture n’est pas bloquée. Aucune réponse n’est attendue du fournisseur de synchronisation. Cette notification ne s’applique pas aux répertoires. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de sa racine de synchronisation est sur le point d’être déshydraté. L’application utilisateur qui effectue la déshydratation est bloquée. Une réponse est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_DEHYDRATE_COMPLETION
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation a été déshydraté. L’application utilisateur qui effectue la déshydratation n’est pas bloquée. Aucune réponse n’est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_DELETE
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation est sur le point d’être supprimé. L’application utilisateur qui effectue la suppression est bloquée. Une réponse est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation a été supprimé. L’application utilisateur qui effectue la suppression n’est pas bloquée. Aucune réponse n’est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_RENAME
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation est sur le point d’être renommé ou déplacé. L’application utilisateur qui effectue le renommage/déplacement est bloquée. Une réponse est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NOTIFY_RENAME_COMPLETION
Ce rappel est utilisé pour informer le fournisseur de synchronisation qu’un espace réservé sous l’une de ses racines de synchronisation a été renommé ou déplacé avec succès. L’application utilisateur qui effectue le renommage/déplacement n’est pas bloquée. Aucune réponse n’est attendue du fournisseur de synchronisation. L’implémentation de ce rappel est facultative.
CF_CALLBACK_TYPE_NONE
Valeur : 0xffffffff
Aucun type de rappel.

Remarques

Il ne s’agit pas d’API fournies par la bibliothèque, mais plutôt de rappels qu’un fournisseur de synchronisation doit implémenter pour traiter les demandes à partir de la plateforme. Si nécessaire, la plateforme demande à la bibliothèque instance en cours d’exécution à l’intérieur du processus du fournisseur de synchronisation d’appeler la routine de rappel appropriée.

Les routines de rappel sont appelées dans un thread arbitraire (partie d’un pool de threads). Plusieurs rappels peuvent se produire simultanément, dans différents threads, et il incombe au code du fournisseur de synchronisation d’implémenter toute synchronisation nécessaire pour que ce travail soit fiable. Tous les rappels sont asynchrones. Les demandes utilisateur asynchrones qui déclenchent les rappels sont bloquées et le contrôle est retourné à l’application utilisateur.

Chaque demande de rappel a un délai d’expiration fixe de 60 secondes. Une opération valide sur toutes les demandes en attente du fournisseur de synchronisation réinitialise les minuteurs de toutes les demandes en attente.

Toutes les fonctions de rappel ont le même prototype avec deux arguments : une structure CF_CALLBACK_INFO et une structure CF_CALLBACK_PARAMETERS .

Les routines de rappel n’ont aucune valeur de retour.

Configuration requise

Condition requise Valeur
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

CF_CALLBACK_INFO

CF_CALLBACK_PARAMETERS