Supporto di Wake-Up di sistema
Mentre il sistema è in uno stato a basso consumo, alcuni dispositivi possono rilevare un evento esterno, ad esempio un pacchetto di rete in ingresso, e quindi riattivare il sistema. Ad esempio, se un dispositivo PCI ha una funzionalità di riattivazione del sistema, come indicato nel registro pmC (Power Management Capabilities) del dispositivo, il sistema viene riattivato generando il segnale di Power Management Event (PME) sul bus PCI.
Se il dispositivo può riattivare il sistema da uno stato a basso consumo a livello di sistema, la funzione di callback EvtDriverDeviceAdd nel proprietario dei criteri di alimentazione deve eseguire i due passaggi seguenti:
Chiamare WdfDeviceAssignSxWakeSettings per specificare:
- Stato a basso consumo immesso dal dispositivo
- Indica se gli utenti possono controllare le impostazioni di inattività del dispositivo
- Indica se la funzionalità di riattivazione del dispositivo è abilitata o disabilitata
Per altre informazioni su queste impostazioni, vedere la struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS .
Chiamare WdfDeviceInitSetPowerPolicyEventCallbacks per registrare le funzioni di callback degli eventi seguenti, se necessario per il dispositivo:
- EvtDeviceArmWakeFromSx o EvtDeviceArmWakeFromSxWithReason, che consentono all'hardware del dispositivo di rispondere a un evento di riattivazione esterno.
- EvtDeviceDisarmWakeFromSx, che disabilita la capacità del dispositivo di rispondere a un evento di riattivazione esterno.
- EvtDeviceWakeFromSxTriggered, che informa il conducente che il bus ha rilevato un segnale di riattivazione.
Anche gli autisti degli autobus partecipano al risveglio del sistema. Il driver per l'autobus del dispositivo fornisce in genere funzioni di callback EvtDeviceEnableWakeAtBus e EvtDeviceDisableWakeAtBus . Queste funzioni eseguono qualsiasi operazione necessaria sulla scheda bus per abilitare e disabilitare la capacità di riattivare un dispositivo da uno stato a basso consumo.
Quando un driver del bus determina che un dispositivo ha attivato un segnale di riattivazione, deve chiamare WdfDeviceIndicateWakeStatus per informare il framework che l'alimentazione del dispositivo deve essere ripristinata. Il framework passa quindi queste informazioni al resto dei driver nello stack di driver.
Per informazioni sulle voci del Registro di sistema che controllano le funzionalità di riattivazione di un dispositivo, vedere Controllo utente del comportamento di inattività e riattivazione del dispositivo.