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 dell'autobus imposta questo valore. Un driver di livello superiore può modificare il valore impostando uno stato con tecnologia superiore. 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ò modificare DeviceWake in D2. Tuttavia, questa modifica causa l'impossibilità del mapping da S2 a D3. Tenere presente che l'array DeviceState elenca lo stato di potenza del dispositivo più elevato che un dispositivo può supportare per uno stato di alimentazione del sistema specifico. 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 in questo sistema.

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