Condividi tramite


Stato di funzionamento 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 di servizio di interrupt a livello passivo (ISR) a un interrupt proveniente da un dispositivo. Il dispositivo può generare interrupt indipendentemente dal fatto che sia nello stato D0. Quando si trova in uno stato Dx a basso consumo, il dispositivo può generare un interrupt che funge da trigger per riportare il dispositivo in D0. L'ISR è pianificato per essere eseguito a IRQL = PASSIVE_LEVEL dopo l'ingresso del dispositivo in D0. Nelle versioni precedenti di Windows, incluso Windows 7, un dispositivo non deve generare interrupt quando si trova in uno stato di potenza del dispositivo diverso da D0.

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

L'hardware del dispositivo monitora in genere un set di eventi interni in grado di generare interruzioni di runtime 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 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 per 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 subito prima che il dispositivo esce da D0 e configura il dispositivo per generare interrupt subito dopo l'ingresso del dispositivo in D0.

In genere, un dispositivo entra nello stato D0 quando viene asserito il segnale di reimpostazione hardware. Infatti, le specifiche per gli autobus 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
Il contesto intero è stato mantenuto.

Comportamento del driver di dispositivo
Normale operazione.

Tempo di ripristino
Non applicabile.

Funzionalità di riattivazione
Non applicabile.