Proprietà di Power Policy in UMDF
Avviso
UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.
Gli esempi di UMDF 1 archiviati sono disponibili nell'aggiornamento degli esempi di driver di Windows 11, versione 22H2 - maggio 2022.
Per altre info, vedi Introduzione a UMDF.
Per ogni dispositivo, uno (e solo uno) dei driver del dispositivo deve essere il proprietario dei criteri di alimentazione del dispositivo. Il proprietario dei criteri di alimentazione determina lo stato di alimentazione del dispositivo appropriato per un dispositivo e invia richieste allo stack di driver del dispositivo ogni volta che lo stato di alimentazione del dispositivo deve cambiare.
I driver basati su framework non contengono codice che richiede modifiche nello stato di alimentazione di un dispositivo, perché il framework fornisce tale codice. Per impostazione predefinita, ogni volta che il sistema entra in stato di sospensione del sistema, il framework chiede al driver che il bus del dispositivo riduce lo stato di alimentazione del dispositivo a D3. Il driver può modificare il comportamento predefinito in modo che il framework imposti lo stato di sospensione del dispositivo su D1 o D2, se il dispositivo fornisce funzionalità di riattivazione. Quando l'alimentazione del sistema torna allo stato di funzionamento (S0), il framework richiede al driver del bus di ripristinare lo stato di funzionamento del dispositivo (D0).
Il proprietario dei criteri di risparmio energia è anche responsabile dell'abilitazione e della disabilitazione delle funzionalità del dispositivo seguenti:
La capacità del dispositivo di entrare in uno stato di bassa potenza (sospensione) quando è inattiva e il sistema rimane nello stato di lavoro (S0)
La capacità del dispositivo di riattivarsi da uno stato di sospensione quando rileva un evento esterno
La capacità del dispositivo di riattivare l'intero sistema da uno stato di sospensione del sistema quando rileva un evento esterno
Se il dispositivo supporta queste funzionalità di accensione e riattivazione del sistema inattive, il proprietario dei criteri di risparmio energia può supportare anche le interfacce IPowerPolicyCallbackWakeFromS0 e IPowerPolicyCallbackWakeFromSx del framework, che definiscono un set di funzioni di callback degli eventi di Power Policy.
Per impostazione predefinita, i driver basati su UMDF non sono proprietari di criteri di risparmio energia. Il driver di funzione in modalità kernel del dispositivo è il proprietario predefinito dei criteri di risparmio energia. (Se non è presente alcun driver di funzione in modalità kernel e il driver del bus ha chiamato WdfPdoInitAssignRawDevice, il conducente del bus è il proprietario dei criteri di alimentazione. Se si vuole che il driver basato su UMDF sia il proprietario dei criteri di alimentazione per uno stack di driver, il driver deve chiamare IWDFDeviceInitialize::SetPowerPolicyOwnership e il proprietario dei criteri di alimentazione predefiniti in modalità kernel deve chiamare WdfDeviceInitSetPowerPolicyOwnership per disabilitare la proprietà.
Inoltre, se si fornisce un driver basato su UMDF per un dispositivo USB e se si vuole che il driver sia il proprietario dei criteri di alimentazione, il file INF del driver deve contenere una direttiva INF AddReg che imposta il valore WinUsbPowerPolicyOwnershipDisabled nel Registro di sistema. Se questo valore REG_DWORD è impostato su qualsiasi numero diverso da zero, disabilita la capacità del driver WinUSB di essere il proprietario dei criteri di alimentazione del dispositivo. La direttiva AddReg deve trovarsi in una sezione INF DDInstall.HW, come illustrato nell'esempio seguente.
[MyDriver_Install.NT.hw]
AddReg=MyDriver_AddReg
[MyDriver_AddReg]
HKR,,"WinUsbPowerPolicyOwnershipDisabled",0x00010001,1
Il framework esegue le operazioni seguenti per il proprietario dei criteri di risparmio energia:
Gestisce tutte le comunicazioni tra il driver e il resto dello stack di driver. Ad esempio, il driver non deve richiedere al conducente del bus di modificare lo stato di alimentazione del dispositivo, perché il framework effettua la richiesta.
Se il driver registra le funzioni di callback degli eventi di Power Policy, il framework li chiama quando è il momento di abilitare o disabilitare la capacità del dispositivo di riattivarsi da uno stato a basso consumo.
Se il driver consente agli utenti di modificare le impostazioni di inattività e riattivazione, il framework fornisce un'interfaccia utente sotto forma di pagina della finestra delle proprietà visualizzata Gestione dispositivi.
Per altre informazioni sulle responsabilità del proprietario di Power Policy, vedere gli argomenti seguenti: