Controllo utente del comportamento di inattività del dispositivo e riattivazione

Se un dispositivo ha funzionalità di attivazione o riattivazione inattive, è possibile decidere se gli utenti devono essere autorizzati a abilitare o disabilitare queste funzionalità.

Il driver può usare i membri della struttura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS per specificare se gli utenti con accesso al Registro di sistema possono abilitare o disabilitare la funzionalità di alimentazione inattiva di un dispositivo.

Il driver può usare i membri della struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS per specificare se gli utenti con accesso al Registro di sistema possono abilitare o disabilitare la funzionalità di riattivazione di un dispositivo.

Entrambe queste strutture consentono al driver di abilitare la funzionalità, disabilitare la funzionalità o concedere agli utenti il controllo della funzionalità. Per assegnare agli utenti il controllo, nella struttura delle impostazioni appropriate il driver imposta rispettivamente il membro UserControlOfIdleSettings o UserControlOfWakeSettings su IdleAllowUserControl o WakeAllowUserControl, e il membro Abilitato a WdfTrue o WdfUseDefault.

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 in modo che gli utenti possano abilitare o disabilitare le funzionalità di inattività e riattivazione. Il framework modifica i valori del Registro di sistema IdleInWorkingState e WakeFromSleepState . I driver e i file di installazione non devono leggere o modificare questi valori.

Se un utente modifica le impostazioni di un dispositivo, il framework aggiorna lo stato di alimentazione del dispositivo in modo che corrisponda alle nuove impostazioni, se necessario. Ad esempio, se l'utente disabilita la funzionalità di alimentazione inattiva di un dispositivo mentre il dispositivo è già in stato di bassa potenza perché è inattivo, il framework restituisce il dispositivo allo stato di funzionamento.

Se il driver consente agli utenti di modificare le impostazioni di inattività e riattivazione, il framework abilita queste impostazioni per impostazione predefinita. Alcuni writer di driver potrebbero voler disabilitare inizialmente le impostazioni prima di consentire agli utenti di modificarli.

Pertanto, per la versione 1.9 e versioni successive di KMDF, il framework fornisce due valori del Registro di sistema definibile driver, denominati WdfDefaultIdleInWorkingState e WdfDefaultWakeFromSleepState, archiviati nella sottochiave Parametri del dispositivo \WDF , sotto la chiave hardware del dispositivo. I valori sono REG_DWORD tipizzati, con "0" che indica che la funzionalità è disabilitata e "1" che indica che la funzionalità è abilitata.

Il file INF del driver può usare una direttiva INF AddReg per creare e impostare i valori del Registro di sistema WdfDefaultIdleInWorkingState e WdfDefaultWakeFromSleepState . Ad esempio, se il driver abilita la funzionalità di alimentazione inattiva di un dispositivo, ma se la funzionalità deve essere disabilitata quando il dispositivo è installato, il file INF del driver può impostare WdfDefaultIdleInWorkingState su "0".

Il framework esamina i valori del Registro di sistema WdfDefaultIdleInWorkingState e WdfDefaultWakeFromSleepState solo se il driver ha impostato il membro UserControlOfIdleSettings o UserControlOfWakeSettings su IdleAllowUserControl o WakeAllowUserControl, rispettivamente e il membro Abilitatoa WdfTrue o WdfUseDefault, nella struttura delle impostazioni appropriata.