Partager via


énumération DRIVER_PROXY_REGISTER_CALLBACK_PHASE (wdm.h)

L’énumération DRIVER_PROXY_REGISTER_CALLBACK_PHASE définit les différentes phases pendant lesquelles un rappel de DRIVER_PROXY_REGISTER_CALLBACK peut être appelé pendant l’inscription du point de terminaison ou les opérations d’échange à chaud.

Syntaxe

typedef enum _DRIVER_PROXY_REGISTER_CALLBACK_PHASE {
  DriverProxyRegisterCallbackPreProcess,
  DriverProxyRegisterCallbackProxyStalled,
  DriverProxyRegisterCallbackPostProcess,
  DriverProxyRegisterCallbackMax
} DRIVER_PROXY_REGISTER_CALLBACK_PHASE, *PDRIVER_PROXY_REGISTER_CALLBACK_PHASE;

Constants

 
DriverProxyRegisterCallbackPreProcess
Indique la phase de prétraitement. Le rappel est appelé avant le début du changement de fonction de point de terminaison, ce qui permet au pilote d’effectuer des opérations de préparation telles que l’acquisition de verrous, l’enregistrement de l’état ou la notification d’autres composants de la modification imminente.
DriverProxyRegisterCallbackProxyStalled
Indique la phase bloquée du proxy. Le rappel est appelé alors que tous les appels aux points de terminaison inscrits sont bloqués (bloqués). Pendant cette phase, le système DriverProxy a acquis le verrou d’exécution et aucun nouvel appel aux fonctions de point de terminaison ne se poursuit. Il s’agit du temps le plus sûr pour le pilote d’effectuer des opérations qui nécessitent un accès exclusif aux ressources qui peuvent être accessibles par les fonctions de point de terminaison.
DriverProxyRegisterCallbackPostProcess
Indique la phase de post-traitement. Le rappel est appelé une fois le changement de fonction de point de terminaison terminé et l’opération normale a repris. Cela permet au pilote d’effectuer des opérations de nettoyage, de verrouiller les verrous de mise en production, de mettre à jour l’état ou d’avertir d’autres composants que l’opération d’échange à chaud s’est terminée.
DriverProxyRegisterCallbackMax
Valeur maximale de l’énumération. Cette valeur n’est pas utilisée comme phase de rappel et est réservée à des fins de validation interne.

Remarques

Cette énumération est utilisée par IoRegisterDriverProxyEndpoints pour indiquer la phase du processus d’inscription en cours d’exécution lorsque le rappel DRIVER_PROXY_REGISTER_CALLBACK est appelé.

Les phases de rappel se produisent dans une séquence spécifique pendant l’inscription du point de terminaison ou les opérations d’échange à chaud :

  1. DriverProxyRegisterCallbackPreProcess : appelé avant le début du changement de fonction.
  2. DriverProxyRegisterCallbackProxyS total : appelé alors que tous les appels de point de terminaison sont bloqués.
  3. DriverProxyRegisterCallbackPostProcess : appelé après la fin du changement de fonction.

Chaque phase sert un objectif différent dans l’opération de permutation à chaud :

  • La phase PreProcess permet aux pilotes de se préparer à la modification à venir.
  • La phase ProxyS total fournit un accès exclusif lorsque les appels de point de terminaison sont bloqués.
  • La phase PostProcess permet aux pilotes de nettoyer une fois la modification terminée.

Le rappel doit retourner STATUS_SUCCESS pour que l’opération continue. Si une phase de rappel retourne un état d’échec, l’opération d’inscription entière échoue et toutes les modifications partielles sont restaurées.

Spécifications

Requirement Valeur
Header wdm.h

Voir aussi

DRIVER_PROXY_REGISTER_CALLBACK

IoRegisterDriverProxyEndpoints

DRIVER_PROXY_ENDPOINT_INFORMATION