Stati di alimentazione del dispositivo USB
Questo articolo descrive gli stati del dispositivo Windows Driver Model (WDM) da usare per gli stati di alimentazione dei dispositivi USB, come specificato nella sezione 9.1 della specifica Universal Serial Bus 2.0.
Gli stati di alimentazione dei dispositivi USB (come specificato nella sezione 9.1 della specifica Universal Serial Bus 2.0) possono essere raggruppati in tre categorie generali:
- Collegato: il dispositivo è collegato, ma non completamente alimentato.
- Alimentato: il dispositivo si trova in uno degli stati completamente alimentato: predefinito, indirizzo o configurato.
- Sospeso: il dispositivo è lo stato di inattività e funziona a basso consumo.
Non esiste alcuna correlazione diretta tra gli stati di alimentazione del dispositivo definiti nel modello di alimentazione WDM e gli stati di alimentazione del dispositivo definiti nello standard USB. Ad esempio, i termini sospesi e inattivo hanno significati specifici nella specifica USB. Tuttavia, questi termini vengono spesso usati in modo diverso nel modello di alimentazione WDM. I driver client Windows possono inserire un dispositivo USB nello stato Sospeso. Per altre informazioni, vedi Sospensione selettiva USB. Quando un driver client è pronto per sospendere il dispositivo, indica al conducente del bus di inattività. Per una descrizione delle richieste inattive, vedi Sospensione selettiva USB.
Gli stati di alimentazione del dispositivo nel modello WDM possono essere riepilogati nel modo seguente:
- D0 : stato di lavoro. Il dispositivo è completamente alimentato.
- D1/D2 : stati di sospensione intermedi. Questi stati consentono al dispositivo di essere armati per la riattivazione remota.
- D3 - Stato di sospensione più profondo. I dispositivi nello stato D3 non possono essere armati per la riattivazione remota.
Per una descrizione completa degli stati di alimentazione dei dispositivi nel modello di alimentazione WDM, vedere Stati di alimentazione del dispositivo.
Il modello di alimentazione WDM usa il termine arming dei dispositivi per la riattivazione remota. L'arming è un'operazione software che normalmente, ma non sempre, porta all'operazione hardware di abilitazione della funzionalità di riattivazione remota in un dispositivo USB. L'operazione software WDM che esegue il braccio di un dispositivo per la riattivazione remota è l'IRP di attesa (IRP_MN_WAIT_WAKE). Per altre informazioni su questo IRP, vedere Supporto di dispositivi con funzionalità di riattivazione.
Per una spiegazione della relazione tra questa operazione software e l'abilitazione della funzionalità di riattivazione remota USB, vedi Riattivazione remota dei dispositivi USB.
In questa sezione sono disponibili le procedure seguenti:
- Modifica dello stato di alimentazione di un dispositivo non comcomposito
- Modifica dello stato di alimentazione di un dispositivo composito
- Argomenti correlati
Modifica dello stato di alimentazione di un dispositivo non comcomposito
Il gestore dei criteri di alimentazione per un dispositivo USB è responsabile dell'impostazione dello stato di alimentazione del dispositivo. Il gestore di power policy imposta lo stato di alimentazione emettendo una potenza WDM (IRP_MN_SET_POWER) IRP. Per altre informazioni su Power Policy Manager, vedere Proprietà di Power Policy.
Le azioni eseguite dal driver del bus dipendono dal livello di alimentazione del dispositivo richiesto dal gestore di power policy. Di seguito sono elencate le azioni eseguite dal conducente del bus per ogni livello di richiesta di alimentazione impostata:
D0
Il conducente del bus esegue le attività seguenti:
- Assicura che tutti gli hub USB upstream siano accesi e pronti per ricevere le richieste.
- Riprende la porta cancellando la funzionalità di PORT_SUSPEND, se la porta USB del dispositivo è sospesa.
- Completa l'IRP inattivo del dispositivo con STATUS_SUCCESS, se ne è in sospeso uno.
- Disarmare il dispositivo per la riattivazione remota se era armato.
D1/D2
Il conducente del bus esegue le attività seguenti:
- Braccia il dispositivo per la riattivazione remota, se un IRP di riattivazione di attesa (IRP_MN_WAIT_WAKE) è in sospeso.
- Sospende la porta USB del dispositivo impostando la funzionalità di PORT_SUSPEND.
D3
Il conducente del bus esegue le attività seguenti:
- Sospende la porta USB del dispositivo impostando la funzionalità di PORT_SUSPEND.
- Completa l'IRP di attesa del dispositivo con STATUS_POWER_STATE_INVALID, se ne è in sospeso uno.
- Completa l'IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) inattivo del dispositivo con STATUS_POWER_STATE_INVALID, se ne è in sospeso uno.
Modifica dello stato di alimentazione di un dispositivo composito
Un driver client per un'interfaccia in un dispositivo composito deve condividere lo stato di alimentazione del dispositivo composito con i driver client per le altre interfacce nel dispositivo. Pertanto, un driver client per un'interfaccia non può inserire il dispositivo composito in uno stato di alimentazione inferiore senza influire su altre interfacce nel dispositivo. Il driver padre generico USB (Usbccgp.sys) esegue le azioni seguenti quando il driver client di un'interfaccia invia una richiesta di IRP_MN_SET_POWER .
D0
Il conducente del bus esegue le attività seguenti:
- Assicura che tutti gli hub USB upstream siano accesi e pronti per ricevere le richieste.
- Riprende la porta cancellando la funzionalità di PORT_SUSPEND, se la porta USB del dispositivo è sospesa.
- Completa l'IRP inattivo del driver client con STATUS_SUCCESS, se ne è in sospeso uno.
D1/D2
L'autista dell'autobus non esegue alcuna azione.
D3
Il conducente del bus esegue le attività seguenti:
- Completa l'IRP di attesa del driver client (IRP_MN_WAIT_WAKE) con STATUS_POWER_STATE_INVALID, se ne è in sospeso uno.
- Completa l'IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) inattivo del driver client con STATUS_POWER_STATE_INVALID, se ne è in sospeso uno.
Il driver padre generico sospende la porta USB per il dispositivo quando si verifica una delle condizioni seguenti:
- Il sistema sta passando a uno stato di alimentazione inferiore.
- I driver client per tutte le funzioni nel dispositivo composito hanno avviato la sospensione selettiva.