Share via


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 alimentazione insufficiente.

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 diverse impostazioni di sistema o WinUSB. Una singola impostazione non può imporre a WinUSB di 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).
  • Un valore pari a zero o l'assenza di questo valore indica che il dispositivo non supporta l'accensione quando è inattivo.
  • Un valore diverso da zero indica che il dispositivo supporta l'accensione quando è inattivo.
  • Se DeviceIdleEnabled non è impostato, il valore dell'impostazione dei criteri di risparmio energia AUTO_SUSPEND viene ignorato.

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'accensione del dispositivo quando è inattivo. Un valore pari a zero o l'assenza di questo valore indica che la casella di controllo non è abilitata.
  • Se l'utente disabilita il risparmio energia del dispositivo, il valore dell'impostazione dei criteri di risparmio energia AUTO_SUSPEND viene ignorato.
  • Se l'utente abilita il risparmio energetico del dispositivo, viene usato il valore di AUTO_SUSPEND per determinare se sospendere il dispositivo quando è inattivo.

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.
  • Un valore pari a zero o l'assenza di questo valore indica che, per impostazione predefinita, il dispositivo non viene sospeso quando è inattiva. Il dispositivo può essere sospeso quando è inattiva solo quando il AUTO_SUSPEND i criteri di risparmio energia sono abilitati.
  • Un valore diverso da zero indica che per impostazione predefinita il dispositivo può essere sospeso quando è inattiva.

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à

Tutte le scritture e i trasferimenti di controllo forzano il dispositivo nello stato di alimentazione D0 e reimpostano il timer di inattività. Le code degli endpoint IN non sono gestite dall'alimentazione. Le richieste di lettura riattivano il dispositivo quando vengono inviate. Tuttavia, un dispositivo può diventare inattiva durante l'attesa di una richiesta di lettura.