Un appareil retourne à son état de fonctionnement
Un appareil qui est dans un état de faible consommation d’énergie retourne à son état de fonctionnement si l’une des opérations suivantes se produit :
L’appareil détecte un événement externe et déclenche un signal de veille sur son bus. Le pilote de bus qui détecte le signal de veille appelle WdfDeviceIndicateWakeStatus. Par conséquent, l’infrastructure appelle la fonction de rappel EvtDeviceDisableWakeAtBus du pilote de bus.
L’appareil est inactif et un pilote appelle WdfDeviceStopIdle.
L’état d’alimentation du système est passé d’un état de faible puissance à son état de fonctionnement (S0).
Dans chacune de ces situations, l’infrastructure appelle la fonction de rappel EvtDeviceD0Entry du pilote de bus, qui restaure ensuite l’appareil (un appareil enfant du bus) à son état de fonctionnement (D0).
Pour chaque pilote de fonction et de filtre qui prend en charge l’appareil, l’infrastructure effectue les opérations suivantes, dans l’ordre, un pilote à la fois, en commençant par le pilote le plus bas dans la pile de pilotes :
L’infrastructure appelle la fonction de rappel EvtDeviceD0Entry du pilote (si elle existe).
L’infrastructure appelle la fonction de rappel EvtInterruptEnable du pilote (si elle existe) pour chaque interruption, puis appelle la fonction de rappel EvtDeviceD0EntryPostInterruptsEnabled du pilote (si elle existe), afin que le pilote puisse activer les interruptions d’appareil.
Si le matériel et le pilote prennent en charge DMA, l’infrastructure appelle les fonctions de rappel EvtDmaEnablerFill, EvtDmaEnablerEnable et EvtDmaEnablerSelfManagedIoStart du pilote (si elles existent) pour chaque canal DMA créé.
Si le pilote est le propriétaire de la stratégie d’alimentation de l’appareil, l’infrastructure appelle sa fonction de rappel EvtDeviceDisarmWakeFromS0 ou EvtDeviceDisarmWakeFromSx .
L’infrastructure appelle la fonction de rappel EvtChildListScanForChildren du pilote (si elle existe).
L’infrastructure redémarre toutes les files d’attente d’E/S gérées par l’alimentation du pilote et appelle leurs fonctions de rappel EvtIoResume (si nécessaire).
Si le pilote utilise des E/S autogérées, l’infrastructure appelle la fonction de rappel EvtDeviceSelfManagedIoRestart du pilote.