Condividi tramite


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. Nessuna nuova funzionalità viene aggiunta 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'Windows 11, versione 22H2 - Aggiornamento degli esempi di driver di maggio 2022.

Per altre informazioni, vedere Introduzione con UMDF.

Per ogni dispositivo, uno (e solo uno) dei driver del dispositivo deve essere il proprietario del criterio di alimentazione del dispositivo. Il proprietario di power policy 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 nello stato di sospensione del sistema, il framework chiede al conducente il bus del dispositivo di ridurre lo stato di alimentazione del dispositivo a D3. Il driver può modificare il comportamento predefinito in modo che il framework imposta lo stato di sospensione del dispositivo su D1 o D2, se il dispositivo offre funzionalità di riattivazione. Quando l'alimentazione del sistema torna allo stato funzionante (S0), il framework richiede al driver del bus di ripristinare lo stato funzionante (D0) del dispositivo.

Il proprietario di power policy è anche responsabile dell'abilitazione e disabilitazione delle funzionalità del dispositivo seguenti:

  • La capacità del dispositivo di immettere 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 attivazione e riattivazione del sistema inattive, il proprietario dei criteri di alimentazione può supportare anche le interfacce IPowerPolicyCallbackWakeFromS0 e IPowerPolicyCallbackWakeFromSx , 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 alimentazione. Il driver di funzione in modalità kernel del dispositivo è il proprietario predefinito dei criteri di alimentazione. Se non esiste un driver di funzione in modalità kernel e il driver del bus ha chiamato WdfPdoInitAssignRawDevice, il driver del bus è il proprietario di power policy. 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 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 del criterio 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 di REG_DWORD dimensioni è impostato su qualsiasi numero diverso da zero, disabilita la capacità del driver WinUSB di essere il proprietario del criterio 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 il funzionamento seguente per il proprietario dei criteri di alimentazione:

  • Gestisce tutte le comunicazioni dei criteri di alimentazione tra il driver e il resto dello stack di driver. Ad esempio, il driver non deve richiedere al driver del bus di modificare lo stato di alimentazione del dispositivo, perché il framework effettua la richiesta.

  • Se il driver registra 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 di bassa potenza.

  • Se il driver consente agli utenti di modificare le impostazioni di inattività e riattivazione, il framework fornisce un'interfaccia utente sotto forma di una pagina del foglio delle proprietà visualizzata Gestione dispositivi.

Per altre informazioni sulle responsabilità del proprietario di Power Policy, vedere gli argomenti seguenti: