Partager via


PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK fonction de rappel (wdm.h)

La routine de rappel ComponentActiveConditionCallback informe le pilote que le composant spécifié a effectué une transition de la condition inactive à la condition active.

Syntaxe

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK PoFxComponentActiveConditionCallback;

void PoFxComponentActiveConditionCallback(
  [in] PVOID Context,
  [in] ULONG Component
)
{...}

Paramètres

[in] Context

Pointeur vers le contexte de l’appareil. Le pilote de périphérique utilise ce contexte pour stocker des informations sur l’état d’alimentation actuel de l’appareil. Le pilote de périphérique a spécifié ce pointeur dans le membre DeviceContext de la structure PO_FX_DEVICE utilisée par le pilote pour inscrire l’appareil auprès de l’infrastructure de gestion de l’alimentation (PoFx). Ce contexte est opaque à PoFx.

[in] Component

Spécifie l’index qui identifie le composant. Ce paramètre est un index dans le tableau Components de la structure PO_FX_DEVICE que le pilote de périphérique a utilisé pour inscrire l’appareil auprès de PoFx. Si le tableau Components contient N éléments, les index de composant vont de 0 à N–1.

Valeur de retour

None

Remarques

Les registres matériels d’un composant sont accessibles uniquement lorsque le composant est dans l’état actif. Ne vous fiez pas à l’état d’alimentation Fx d’un composant pour déterminer si le composant est accessible. Si le composant est à l’état F0 et qu’il est inactif, il est peut-être sur le point de basculer vers un autre état Fx.

Pour accéder à un composant qui se trouve dans la condition d’inactivité, le pilote peut appeler la routine PoFxActivateComponent pour basculer le composant vers la condition active. Si le composant n’est pas déjà dans l’état actif lorsque PoFxActivateComponent est appelé, PoFx lance la transition vers la condition active, puis appelle la routine ComponentActiveConditionCallback pour avertir le pilote lorsque la transition est terminée.

Le pilote reçoit un rappel ComponentActiveConditionCallback chaque fois que le composant effectue une transition vers la condition active, que le pilote ait ou non appelé PoFxActivateComponent pour lancer la transition. Par exemple, le noyau Windows peut activer le composant pour le compte du pilote avant d’envoyer un IRP Plug-and-Play ou un IRP d’alimentation défini par le système au pilote.

Exemples

Pour définir une routine de rappel ComponentActiveConditionCallback , vous devez d’abord fournir une déclaration de fonction qui identifie le type de routine de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction de rappel permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une routine de rappel ComponentActiveConditionCallback nommée MyComponentActiveConditionCallback, utilisez le type PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK comme indiqué dans cet exemple de code :

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK MyComponentActiveConditionCallback;

Ensuite, implémentez votre routine de rappel comme suit :

_Use_decl_annotations_
VOID
  MyComponentActiveConditionCallback(
    PVOID Context,
    ULONG Component
    )
  {
      // Function body
  }

Le type de fonction PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK est défini dans le fichier d’en-tête Wdm.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation _Use_decl_annotations_ à votre définition de fonction. L’annotation _Use_decl_annotations_ garantit que les annotations appliquées au type de fonction PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes WDM. Pour plus d’informations sur _Use_decl_annotations_, consultez Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 8.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wudfwdm.h)
IRQL Appelé à IRQL <= DISPATCH_LEVEL.

Voir aussi

PO_FX_DEVICE

PoFxActivateComponent