Condividi tramite


Segnalazione del dispositivo acceso quando il sistema torna a S0

[Si applica solo a KMDF]

Quando il sistema torna allo stato di funzionamento (S0) da uno stato a basso consumo, il gestore PnP invia un IRP di alimentazione del sistema (IRP_MN_SET_POWER) per restituire il dispositivo allo stato funzionante (D0). WDF gestisce l'IRP di set di sistema. Tuttavia, poiché nello scenario multi-componente il driver ha registrato direttamente con il framework di risparmio energia (PoFx), il driver deve chiamare PoFxReportDevicePoweredOn quando il dispositivo ha completato la transizione allo stato di alimentazione completamente attivo (D0). A tale scopo, il driver può eseguire questa operazione registrando una routine di pre-elaborazione WDM per ricevere una notifica quando arriva un IRP di alimentazione del sistema.

Il driver può usare la procedura seguente:

  1. Chiamare WdfDeviceInitAssignWdmIrpPreprocessCallback per registrare una funzione di callback EvtDeviceWdmIrpPreprocess per IRP_MN_SET_POWER. Nel callback il driver imposta un flag nell'estensione del dispositivo per indicare che deve chiamare PoFxReportDevicePoweredOn dal callback evtDeviceD0Entry successivo.
  2. In EvtDeviceD0Entry, se il flag è impostato, il driver cancella il flag e chiama PoFxReportDevicePoweredOn.
  3. Il driver controlla anche il flag in EvtDeviceSelfManagedIoFlush. Se il flag è impostato, il dispositivo non è riuscito a tornare a D0 e il dispositivo è stato rimosso. In questo caso, il driver chiama PoFxReportDevicePoweredOn e quindi annulla la registrazione con il framework di alimentazione.