é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 |