Partager via


Appareil de création de rapports sous tension lorsque le système revient à S0

[S’applique uniquement à KMDF]

Lorsque le système revient à son état de fonctionnement (S0) à partir d’un état de faible consommation, le gestionnaire PnP envoie un IRP (IRP_MN_SET_POWER) pour rétablir l’état de fonctionnement (D0) de l’appareil. WDF gère l’IRP set-power du système. Toutefois, étant donné que, dans le scénario multicomposants, le pilote s’est directement inscrit auprès de l’infrastructure de gestion de l’alimentation (PoFx), le pilote doit appeler PoFxReportDevicePoweredOn lorsque l’appareil a terminé la transition vers son état d’alimentation complet sur (D0). Pour ce faire, le pilote peut inscrire une routine de prétraitement WDM pour recevoir une notification lorsqu’un IRP de set-power du système arrive.

Le pilote peut utiliser la procédure suivante :

  1. Appelez WdfDeviceInitAssignWdmIrpPreprocessCallback pour inscrire une fonction de rappel EvtDeviceWdmIrpPreprocess pour IRP_MN_SET_POWER. Dans le rappel, le pilote définit un indicateur dans son extension d’appareil pour indiquer qu’il doit appeler PoFxReportDevicePoweredOn à partir de son prochain rappel EvtDeviceD0Entry .
  2. Dans EvtDeviceD0Entry, si l’indicateur est défini, le pilote efface l’indicateur et appelle PoFxReportDevicePoweredOn.
  3. Le conducteur vérifie également l’indicateur dans EvtDeviceSelfManagedIoFlush. Si l’indicateur est défini, l’appareil n’a pas pu revenir à D0 et l’appareil a été supprimé. Dans ce cas, le pilote appelle PoFxReportDevicePoweredOn , puis se désinscrit auprès de l’infrastructure d’alimentation.