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 interruzioni. Se il dispositivo dispone di registri hardware mappati nello spazio di indirizzi di memoria o I/O, il driver può accedere a questi registri.

A partire da Windows 8, un driver di dispositivo può connettere una routine del servizio di interruzione a livello passivo (ISR) all'interruzione da un dispositivo. Il dispositivo può generare interruzioni indipendentemente dal fatto che si tratti di D0. Quando in uno stato Dx a bassa potenza, il dispositivo può generare un interruzione che funge da trigger per ripristinare il dispositivo in D0. L'ISR è pianificato per l'esecuzione in IRQL = PASSIVE_LEVEL dopo che il dispositivo entra in D0. Nelle versioni precedenti di Windows, incluso Windows 7, un dispositivo non deve generare interruzioni quando si trova in uno stato di alimentazione del dispositivo diverso da D0.

Una transizione da D0 a uno stato Dx a bassa potenza può verificarsi solo quando il driver del dispositivo, mentre agisce come proprietario dei criteri di alimentazione per il dispositivo, avvia la transizione chiamando la routine PoRequestPowerIrp . Quando il power manager risponde a questa chiamata inviando un'IRP (IRP_MN_SET_POWER), il driver del dispositivo, il driver del bus e il firmware della piattaforma (tramite il driver ACPI di Windows, Acpi.sys) gestire 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 interruzioni di runtime o segnali di riattivazione, a seconda della configurazione del dispositivo. Il driver implementa un percorso di codice per rispondere agli interruzioni e un altro per rispondere agli eventi di riattivazione. Il codice driver può essere semplificato se il percorso del codice di interruzione non deve gestire gli eventi di riattivazione e il percorso del codice di riattivazione non deve gestire gli interruzioni. Come procedura consigliata, il driver deve configurare il dispositivo per generare interruzioni solo quando il dispositivo è in D0 e per generare segnali di riattivazione solo quando il dispositivo è in uno stato dx a bassa potenza. In genere, il driver configura il dispositivo per generare un segnale di riattivazione appena prima dell'uscita dal dispositivo D0 e configura il dispositivo per generare interruzioni subito dopo l'ingresso del dispositivo D0.

In genere, un dispositivo entra nello stato D0 quando viene affermato il segnale di reimpostazione hardware. Infatti, le specifiche per gli autobus, ad esempio PCI e PCI Express, richiedono questo comportamento.

Queste sono le caratteristiche dello stato D0:

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

Contesto del dispositivo
Tutto il contesto mantenuto.

Comportamento del driver del dispositivo
Normale operazione.

Tempo di ripristino
Non applicabile.

Funzionalità di riattivazione
Non applicabile.