Funzione PoFxNotifySurprisePowerOn (wdm.h)
La routine PoFxNotifySurprisePowerOn notifica al framework di risparmio energia (PoFx) che un dispositivo è stato attivato come effetto collaterale della fornitura di alimentazione ad altri dispositivi.
Sintassi
void PoFxNotifySurprisePowerOn(
[in] PDEVICE_OBJECT Pdo
);
Parametri
[in] Pdo
Puntatore a un oggetto dispositivo fisico (PDO). Questo parametro punta a una struttura DEVICE_OBJECT che rappresenta il dispositivo fisico attivato come effetto collaterale. Il chiamante è sempre il driver dell'autobus che ha enumerato il PDO.
Valore restituito
nessuno
Osservazioni
I driver di dispositivo non devono chiamare questa routine. Questa routine deve essere chiamata solo dai conducenti degli autobus.
Un autista del bus chiama questa routine per informare PoFx che un dispositivo che non è attualmente in uso è stato attivato accidentalmente contemporaneamente a un secondo dispositivo. Ad esempio, il primo dispositivo potrebbe condividere una guida di alimentazione con il secondo dispositivo. Di conseguenza, l'alimentazione non può essere fornita al secondo dispositivo senza fornire alimentazione, come effetto collaterale, al primo dispositivo. Poiché il primo dispositivo non viene usato, questo dispositivo deve essere configurato per consumare il minor consumo di energia possibile.
Per richiedere una transizione a uno stato di alimentazione D0, un driver di dispositivo invia un IRP_MN_SET_POWER richiesta nello stack di dispositivi. Tramite il PDO in questo stack, il driver del bus padre di questo dispositivo riceve la richiesta e risponde fornendo alimentazione al dispositivo. Tuttavia, se il driver del bus non può attivare questo dispositivo senza attivare anche un secondo dispositivo inutilizzato, il driver del bus può chiamare PoFxNotifySurprisePowerOn per ridurre la potenza consumata dal dispositivo inutilizzato.
All'ingresso di PoFxNotifySurprisePowerOn, il dispositivo rappresentato dal parametro Pdo si trova in uno stato di alimentazione D0 non inizializzato. In questo stato, tutti i componenti del dispositivo vengono in genere attivati. In risposta alla chiamata PoFxNotifySurprisePowerOn , PoFx configura il dispositivo in uno stato D0 inizializzato. Durante questa configurazione, PoFx passa il maggior numero di componenti possibile agli stati di alimentazione fx a basso consumo. Se possibile, PoFx configura il dispositivo in uno stato "D3 attivo", che è in realtà uno stato D0 in cui tutti i singoli componenti del dispositivo sono disattivati.
PoFxNotifySurprisePowerOn può configurare solo un dispositivo registrato con PoFx quando il dispositivo è stato disattivato in precedenza. Tuttavia, a meno che il conducente del bus non sappia che un dispositivo non è registrato, il driver del bus deve chiamare PoFxNotifySurprisePowerOn quando il dispositivo è attivato come effetto collaterale.
Se il driver del bus non riesce a chiamare questa routine quando il dispositivo è acceso, l'hardware del dispositivo potrebbe rimanere completamente attivo per un periodo di tempo indefinito, durante il quale PoFx presuppone che il dispositivo rimanga nello stato di alimentazione D3 (completamente spento).
Chiama PoFxNotifySurprisePowerOn solo se il dispositivo è stato attivato accidentalmente, come effetto collaterale dell'attivazione di un altro dispositivo. Se il driver del bus ripristina l'alimentazione in un dispositivo in risposta a un callback DevicePowerRequiredCallback o a una richiesta di IRP_MN_SET_POWER per una transizione D0, chiamare la routine PoFxReportDevicePoweredOn per informare PoFx quando l'alimentazione viene ripristinata nel dispositivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 8. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h |
Libreria | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |