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