PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK fonction de rappel (wdm.h)
La routine de rappel ComponentIdleConditionCallback avertit 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 actuel de l’alimentation de l’appareil. Le pilote de périphérique a spécifié ce pointeur dans le DeviceContext membre de la structure PO_FX_DEVICE utilisée par le pilote pour inscrire l’appareil auprès du framework de gestion de l’alimentation (PoFx). Ce contexte est opaque pour PoFx.
[in] Component
Index qui identifie le composant. Ce paramètre est un index dans le tableau Components dans la structure PO_FX_DEVICE utilisée par le pilote de périphérique pour inscrire l’appareil auprès de PoFx. Si le tableau Composants contient N éléments, les index de composant sont comprises entre 0 et N-1.
Valeur de retour
Aucun
Remarques
Lorsque le pilote n’a plus besoin d’accéder à un composant qui se trouve dans la condition active, le pilote doit appeler la routine PoFxIdleComponent pour basculer le composant vers la condition inactive. En réponse à l’appel PoFxIdleComponent, PoFx lance la transition vers la condition inactive, 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 est accessible en toute sécurité uniquement lorsque le composant est dans la condition active. Ne vous fiez pas à l’état de puissance Fx d’un composant pour déterminer si le composant est accessible. Si le composant est dans l’état F0 et est dans la condition inactive, le composant 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 fonctions de rappel permet d'Analyse du code pour les pilotes, static Driver Verifier (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des 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 lorsque vous exécutez les 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 les exigences relatives aux 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 annoter le comportement de la fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge à partir de Windows 8. |
plateforme cible | Bureau |
d’en-tête | wdm.h (include Wudfwdm.h) |
IRQL | Appelé au <IRQL = DISPATCH_LEVEL. |