Risparmio energia WinUSB
WinUSB usa le macchine a stati KMDF per il risparmio energia. I criteri di risparmio energia vengono gestiti tramite chiamate a WinUsb_SetPowerPolicy.
Per modificare il comportamento di alimentazione di WinUSB, le impostazioni predefinite del Registro di sistema possono essere modificate nell'INF del dispositivo. Questi valori devono essere scritti nel percorso specifico del dispositivo nel Registro di sistema aggiungendo i valori nel modulo di protezione hardware. Sezione AddReg dell'INF.
I valori del Registro di sistema descritti nell'elenco seguente possono essere specificati nell'INF del dispositivo per modificare il comportamento di alimentazione.
Riattivazione del sistema
Questa funzionalità è controllata dall'impostazione del Registro di sistema SystemWakeEnabled DWORD. Questo valore indica se il dispositivo deve essere autorizzato a riattivare il sistema da uno stato di basso consumo.
HKR,,SystemWakeEnabled,0x00010001,1
- Un valore pari a zero o l'assenza di questo valore indica che il dispositivo non è autorizzato a riattivare il sistema.
- Per consentire a un dispositivo di riattivare il sistema, impostare SystemWakeEnabled su un valore diverso da zero. Una casella di controllo nella pagina Proprietà dispositivo viene abilitata automaticamente in modo che l'utente possa eseguire l'override dell'impostazione.
Nota
La modifica dell'impostazione SystemWakeEnabled non ha alcun effetto sulla sospensione selettiva, questo valore del Registro di sistema riguarda solo la sospensione del sistema.
Sospensione selettiva
La sospensione selettiva può essere disabilitata da una delle diverse impostazioni di sistema o WinUSB. Una singola impostazione non può forzare WinUSB ad abilitare la sospensione selettiva.
Le impostazioni dei criteri di risparmio energia seguenti specificate nel parametro PolicyType di WinUsb_SetPowerPolicy influiscono sul comportamento della sospensione selettiva:
- AUTO_SUSPEND Se impostato su zero, il dispositivo non viene impostato sulla modalità di sospensione selettiva.
- SUSPEND_DELAY Imposta il tempo tra il momento in cui il dispositivo diventa inattiva e quando WinUSB richiede al dispositivo di passare alla sospensione selettiva.
Nella tabella seguente viene illustrato come le chiavi del Registro di sistema influiscono sulla funzionalità di sospensione selettiva.
Chiave del Registro di sistema | Descrizione |
---|---|
DeviceIdleEnabled | Si tratta di un valore DWORD. Questo valore del Registro di sistema indica se il dispositivo è in grado di essere spento quando è inattivo (sospensione selettiva).
HKR,,DeviceIdleEnabled,0x00010001,1 |
DeviceIdleIgnoreWakeEnable | Se impostato su un valore diverso da zero, sospende il dispositivo anche se non supporta RemoteWake. |
UserSetDeviceIdleEnabled | Questo valore è un valore DWORD. Questo valore del Registro di sistema indica se nella pagina Proprietà dispositivo deve essere abilitata una casella di controllo che consente a un utente di eseguire l'override delle impostazioni predefinite inattive. Quando UserSetDeviceIdleEnabled è impostato su un valore diverso da zero, la casella di controllo è abilitata e l'utente può disabilitare l'alimentazione del dispositivo quando è inattivo. Un valore pari a zero o l'assenza di questo valore indica che la casella di controllo non è abilitata.
UserSetDeviceIdleEnabled viene ignorato se DeviceIdleEnabled non è impostato. HKR,,UserSetDeviceIdleEnabled,0x00010001,1 |
DefaultIdleState | Si tratta di un valore DWORD. Questo valore del Registro di sistema imposta il valore predefinito dell'impostazione dei criteri di risparmio energia AUTO_SUSPEND. Questa chiave del Registro di sistema viene usata per abilitare o disabilitare la sospensione selettiva quando un handle non è aperto al dispositivo.
Questo valore viene ignorato se DeviceIdleEnabled non è impostato. HKR,,DefaultIdleState,0x00010001,1 |
DefaultIdleTimeout | Si tratta di un valore DWORD. Questo valore del Registro di sistema imposta lo stato predefinito dell'impostazione dei criteri di risparmio energia SUSPEND_DELAY. Il valore indica la quantità di tempo in millisecondi di attesa prima di determinare che un dispositivo è inattiva. HKR,,DefaultIdleTimeout,0x00010001,100 |
Rilevamento dell'inattività
Tutti i trasferimenti di scrittura e controllo forzano il dispositivo nello stato di alimentazione D0 e reimpostano il timer di inattività. Le code degli endpoint IN non sono gestite in modo energetico. Le richieste di lettura riattivano il dispositivo quando vengono inviate. Tuttavia, un dispositivo può diventare inattiva durante l'attesa di una richiesta di lettura.
Argomenti correlati
- Architettura e moduli WinUSB
- Scelta di un modello di driver per lo sviluppo di un driver client USB
- Installazione di WinUSB (Winusb.sys)
- Come accedere a un dispositivo USB tramite funzioni WinUSB
- Funzioni WinUSB per la modifica dei criteri pipe
- Funzioni WinUSB
- Introduzione a WinUSB per sviluppatori
- WinUsb_GetPowerPolicy
- WinUsb_SetPowerPolicy