Stato di lavoro del dispositivo D0

Nello stato di alimentazione del dispositivo D0 il dispositivo è completamente attivo e operativo. In questo stato, un driver di dispositivo può interagire con il dispositivo per eseguire operazioni di I/O e il dispositivo può generare interrupt. Se il dispositivo dispone di registri hardware mappati in memoria o nello spazio indirizzi di I/O, il driver può accedere a questi registri.

A partire Windows 8, un driver di dispositivo può connettere una routine del servizio di interrupt a livello passivo (ISR) all'interrupt da un dispositivo. Il dispositivo può generare interrupt indipendentemente dal fatto che sia in D0. In uno stato Dx a basso consumo, il dispositivo può generare un interrupt che funge da trigger per riportare il dispositivo a D0. L'ISR è pianificato per l'esecuzione in IRQL = PASSIVE_LEVEL dopo che il dispositivo ha immesso D0. Nelle versioni precedenti di Windows, Windows 7, un dispositivo non deve generare interrupt quando si trova in uno stato di alimentazione del dispositivo diverso da D0.

Una transizione da D0 a uno stato Dx a basso consumo può verificarsi solo quando il driver di dispositivo, pur fungendo da proprietario dei criteri di alimentazione per il dispositivo, avvia la transizione chiamando la routine PoRequestPowerIrp . Quando il gestore alimentazione risponde a questa chiamata inviando un IRP di alimentazione (IRP_MN_SET_POWER), il driver di dispositivo, il driver del bus e il firmware della piattaforma (tramite il driver ACPI Windows, Acpi.sys) gestiscono in modo cooperativo questo IRP per modificare lo stato di alimentazione del dispositivo.

L'hardware del dispositivo monitora in genere un set di eventi interni che possono generare interrupt di run-time o segnali di riattivazione, a seconda della configurazione del dispositivo. Il driver implementa un percorso di codice per rispondere agli interrupt e un altro per rispondere agli eventi di riattivazione. Il codice del driver può essere semplificato se il percorso del codice di interrupt non deve gestire gli eventi di riattivazione e il percorso del codice di riattivazione non deve gestire gli interrupt. Come procedura consigliata, il driver deve configurare il dispositivo in modo da generare interrupt solo quando il dispositivo è in D0 e generare segnali di riattivazione solo quando il dispositivo si trova in uno stato Dx a basso consumo. In genere, il driver configura il dispositivo per generare un segnale di riattivazione poco prima che il dispositivo eserciti D0 e configura il dispositivo per generare gli interrupt subito dopo che il dispositivo entra in D0.

In genere, un dispositivo entra nello stato D0 quando viene asserito il segnale di reimpostazione dell'hardware. In realtà, le specifiche per bus come PCI e PCI Express richiedono questo comportamento.

Queste sono le caratteristiche dello stato D0:

Consumo energetico
Livello massimo di consumo continuo di energia per il dispositivo.

Contesto del dispositivo
Tutto il contesto viene mantenuto.

Comportamento del driver di dispositivo
Funzionamento normale.

Ora di ripristino
Non applicabile.

Funzionalità di riattivazione
Non applicabile.