Gestion des runtimes d’intégration d’alimentation
Les pilotes gèrent les irps d’alimentation dans une routine DispatchPower . Toutes les demandes de gestion de l’alimentation ont le code IRP principal IRP_MJ_POWER et l’un des codes mineurs suivants :
IRP_MN_QUERY_POWER : requêtes pour déterminer si la modification de l’état d’alimentation est possible
IRP_MN_SET_POWER : demande un passage d’un état d’alimentation à un autre
IRP_MN_WAIT_WAKE : demande qu’un appareil soit activé pour se réveiller lui-même ou le système
IRP_MN_POWER_SEQUENCE : demande des informations pour optimiser la restauration de l’alimentation sur un appareil particulier
La prise en charge des IRP_MN_SET_POWER et des IRP_MN_QUERY_POWER est requise. Tous les conducteurs doivent être prêts à gérer ces IRP.
La prise en charge de IRP_MN_WAIT_WAKE est requise pour tous les pilotes de la pile de périphériques pour tous les appareils qui peuvent se réveiller en réponse à un signal externe. Un pilote envoie cette IRP pour activer l’appareil pour la mise en éveil.
La prise en charge de IRP_MN_POWER_SEQUENCE est facultative. Cette IRP fournit une optimisation pour les appareils qui prennent beaucoup de temps pour restaurer l’alimentation.
Un IRP d’alimentation peut spécifier une opération d’alimentation du système ou une opération d’alimentation de l’appareil. Les IRP d’alimentation pour le système et les IRP d’alimentation pour des appareils individuels prennent des chemins légèrement différents dans une pile d’appareils, comme expliqué dans les sections suivantes.