Partager via


PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK fonction de rappel (wdm.h)

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

Syntaxe

PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK PoFxComponentIdleConditionCallback;

void PoFxComponentIdleConditionCallback(
  [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

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

Lorsque le pilote n’a plus besoin d’accéder à un composant qui est dans l’état actif, il doit appeler la routine PoFxIdleComponent pour basculer le composant vers la condition d’inactivité. En réponse à l’appel PoFxIdleComponent , PoFx lance la transition vers la condition d’inactivité, puis appelle la routine ComponentIdleConditionCallback pour avertir le pilote lorsque cette transition est terminée.

Le pilote doit appeler PoFxCompleteIdleCondition en réponse à chaque rappel ComponentIdleConditionCallback . L’appel PoFxCompleteIdleCondition peut se produire pendant le rappel ComponentIdleConditionCallback ou après le retour du rappel. Le pilote doit effectuer tout travail nécessitant l’accès au composant matériel avant l’appel à PoFxCompleteIdleCondition. Après cet appel, le composant peut ne pas rester dans l’état d’alimentation F0.

Un composant n’est accessible en toute sécurité que lorsqu’il 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.

Exemples

Pour définir une routine de rappel ComponentIdleConditionCallback , 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 ComponentIdleConditionCallback nommée MyComponentIdleConditionCallback, utilisez le type PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK comme indiqué dans cet exemple de code :

PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK MyComponentIdleConditionCallback;

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

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

Le type de fonction PO_FX_COMPONENT_IDLE_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_IDLE_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

PoFxCompleteIdleCondition