Condividi tramite


DeviceWake

Il membro DeviceWake di DEVICE_CAPABILITIES contiene lo stato di alimentazione del dispositivo minimo (meno alimentato) da cui il dispositivo può segnalare un evento di riattivazione o PowerDeviceUnspecified se il dispositivo non può riattivarsi in risposta a un segnale esterno.

Il driver del bus imposta questo valore. Un driver di livello superiore può impostare il valore in uno stato di maggiore potenza. Ad esempio, se il driver del bus imposta DeviceWake su D3, ma un driver più in alto lo stack di dispositivi supporta solo la riattivazione da D2, il driver di livello superiore può modificare il valore in D2.

Si noti che se un driver cambia DeviceWake, potrebbe anche essere necessario modificare SystemWake per evitare conflitti con i mapping da sistema a dispositivo nella matrice DeviceState . Si supponga, ad esempio, che il conducente del bus imposti quanto segue:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

Se un driver di livello superiore determina che il dispositivo non può riattivare il sistema da D3, ma solo da D2 o versione successiva, può cambiare DeviceWake in D2. Tuttavia, questa modifica causa l'impossibilità del mapping da S2 a D3. Tenere presente che la matrice DeviceState elenca lo stato di alimentazione più alto del dispositivo che un dispositivo può supportare per uno stato di alimentazione del sistema specificato. Se lo stato di alimentazione del sistema nell'esempio è PowerSystemSleeping2, lo stato di alimentazione del dispositivo non può essere PowerDeviceD2. Per eliminare questo problema, il driver deve anche modificare SystemWake in PowerSystemSleeping1. Lo stesso vale per le impostazioni WakeFromDx e DeviceDx . Un driver deve assicurarsi che le modifiche apportate a SystemWake o DeviceWake non siano in conflitto con i valori WakeFromDx e DeviceDx . I valori di WakeFromDx e DeviceDx riflettono le caratteristiche hardware che un driver non può modificare.

Se entrambi i membri SystemWake e DeviceWake sono diversi da zero (ovvero non PowerSystemUnspecified), il dispositivo e i relativi driver supportano la riattivazione del sistema.

Nell'hardware non ACPI il membro DeviceWake contiene zero (PowerSystemUnspecified).