Panoramica dell'ibernazione adattiva

Gli utenti possono impostare l'opzione Hibernate nei dispositivi Windows per inserire il sistema in uno stato di bassa potenza quando il sistema non è in uso. La logica corrente per l'ibernazione nel sistema operativo si basa sull'ibernazione adattiva per mettere il sistema in ibernazione dopo aver scaricato una determinata percentuale di capacità della batteria durante la standby moderna.

Le macchine virtuali o gli utenti possono anche configurare una doze fissa per l'ibernazione del timer. Tuttavia, la logica basata su timer presenta svantaggi significativi dell'esperienza utente. Un timer di doze fisso può comportare lo svuotamento completo della batteria in standby se lo scarico si è verificato all'interno del timeout doze o tagliare un'esperienza di standby moderna a basso scarico eseguendo l'ibernazione al timeout doze. Di conseguenza, è preferibile sfruttare l'ibernazione adattiva per ibernare dinamicamente in base al consumo della batteria.

L'ibernazione adattiva fornisce trigger che consentono al sistema di ibernare in modo intelligente. Questi trigger offrono i vantaggi seguenti:

  • Eliminare la ripresa di una batteria morta.
  • Offrire un'esperienza di standby moderna ottimale assicurandosi che il sistema rimanga in Standby moderno per il più lungo possibile.

Per supportare i trigger di ibernazione adattivi, il sistema è abilitato con valori predefiniti. Tuttavia, gli OEMS possono programmare questi trigger per garantire che i computer si ibernano per offrire l'esperienza migliore possibile agli utenti.

Requisiti di sistema

I trigger si applicano solo ai sistemi di standby moderni.

Comportamento predefinito

I computer avranno timeout di ibernazione adattivo abilitato per impostazione predefinita; Tuttavia, le macchine virtuali possono configurare le impostazioni usando un file di pacchetto di provisioning. Per altre informazioni su come eseguire questa operazione, vedere le sezioni seguenti.

Nota

Windows ha un periodo di tolleranza di 15 minuti prima di applicare uno di questi trigger. Si tratta di garantire che il sistema non passi rapidamente in ibernazione.

Trigger di ibernazione

Le impostazioni di ibernazione adattiva (impostazione budget standby e impostazione di tempo di riserva standby) vengono esposte come impostazioni di alimentazione nascoste. Le impostazioni vengono applicate solo sul controller di dominio e non hanno alcun impatto sull'ac.

Impostazione del budget standby

Nella tabella seguente sono elencate le impostazioni che è possibile usare per impostare il budget di standby, ovvero la quantità di batteria consentita dall'utente durante lo standby.

Impostazione budget Definizione Esposto come Comando Powercfg

StandbyBudgetPercent

Definisce la percentuale di scarico della batteria consentita dall'utente in una sessione di standby. Il valore predefinito è 5%.

Impostazione di alimentazione

powercfg /setdcvalueindex scheme_current sub_presence standbybudgetpercent

È anche possibile configurare queste impostazioni usando un file di pacchetto di provisioning personalizzato per le immagini OEM. Per altre informazioni su powercfg, vedere Opzioni della riga di comando di Powercfg.

Impostazione del tempo di riserva standby

Il tempo di riserva è la quantità di tempo in cui l'utente ha la garanzia di avere lo schermo in seguito alla ripresa del sistema dallo standby o dall'ibernazione. Nella tabella seguente sono elencate le impostazioni che è possibile usare per impostare l'ora di riserva.

Impostazione budget Definizione Esposto come Comando Powercfg

StandbyReserveTime

Definisce lo schermo in tempo, in secondi, che sarà disponibile per l'utente dopo l'uscita dalla standby e la schermata attiva. Il valore predefinito è 1200 secondi.

Impostazione di alimentazione

powercfg /setdcvalueindex scheme_current sub_presence standbyreservetime

È anche possibile configurare queste impostazioni usando un file di pacchetto di provisioning personalizzato per le immagini OEM. Per altre informazioni su powercfg, vedere Opzioni della riga di comando di Powercfg.

Esempio di pacchetto di provisioning di Windows

È possibile usare il framework di provisioning di Windows per configurare le impostazioni di ibernazione adattive descritte in questa sezione. Prima di tutto, creare un pacchetto di provisioning usando La configurazione di Windows Designer. Si modifica quindi il file customizations.xml contenuto nel pacchetto per includere le impostazioni di alimentazione, che vengono visualizzate nello Common\Power\Policy\Settings\AdaptivePowerBehavior spazio dei nomi. Usare il file XML come uno degli input per l'interfaccia della riga di comando di Windows Designer per generare un pacchetto di provisioning che contiene le impostazioni di alimentazione. È quindi possibile applicare il pacchetto di provisioning all'immagine. Per informazioni su come usare l'interfaccia della riga di comando di Configurazione di Designer Windows Designer, vedere Usare l'interfaccia della riga di comando di Configurazione di Windows.

Nell'esempio seguente viene illustrato il file di risposte di provisioning di Windows dopo averla scritta per configurare le impostazioni di ibernazione adattive.

<?xml version="1.0" encoding="utf-8"?>
<WindowsCustomizatons>
  <PackageConfig xmlns="urn:schemas-Microsoft-com:Windows-ICD-Package-Config.v1.0">
    <ID>{XXXX GUID}</ID>  <!-- ID needs to be be unique GUID for the package -->
    <Name>CustomOEM.Power.Settings.Control</Name>
    <Version>1.0</Version>
    <OwnerType>OEM</OwnerType>
  </PackageConfig>

  <Settings xmlns="urn:schemas-microsoft-com:windows-provisioning">
     <Customizations>
        <Common>
           <Power>
              <Policy>
                 <Settings>
                    <AdaptivePowerBehavior>
                       <SchemePersonality>
                          <Default SchemeAlias="Balanced">
                             <Setting>
                                <!-- After entering standby, battery drain percentage allowed before the device transitions to hibernate -->
                                <StandbyBudgetPercent>
                                   <DcValue>3</DcValue>
                                </StandbyBudgetPercent>
                                <!-- After entering standby, number of seconds before the device automatically transitions to hibernate -->
                                <StandbyReserveTime>
                                   <DcValue>600</DcValue>
                                </StandbyReserveTime>
                             </Setting>

                          </Default>
                       </SchemePersonality>
                    </AdaptivePowerBehavior>
                 </Settings>
              </Policy>
           </Power>
        </Common>
     </Customizations>
  </Settings>