DeviceState

Le membre DeviceState de DEVICE_CAPABILITIES est un tableau de valeurs DEVICE_POWER_STATE indexées par SYSTEM_POWER_STATE valeurs allant de PowerSystemWorking à PowerSystemShutdown. Chaque élément du tableau contient l’état d’alimentation maximale de l’appareil (le plus puissant) que l’appareil peut prendre en charge pour l’état d’alimentation du système indiqué par l’index, ou PowerDeviceUnspecified si l’état d’alimentation du système n’est pas pris en charge.

Par exemple, sur un système qui prend uniquement en charge les états d’alimentation du système S0, S4 et S5, le tableau DeviceState d’un appareil qui ne prend en charge que les états D0 et D3 contient les valeurs indiquées dans le tableau suivant.

Élément DeviceState Valeur

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping2]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping3]

PowerDeviceUnspecified

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Sur un système qui prend en charge tous les états d’alimentation du système, le tableau suivant répertorie les valeurs que le tableau contiendrait pour un appareil qui doit être à l’état D2 ou inférieur chaque fois que le système passe à un état de veille intermédiaire et à l’état D3 lorsque le système est mis en veille prolongée.

Élément DeviceState Valeur

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceD2

DeviceState[PowerSystemSleeping2]

PowerDeviceD2

DeviceState[PowerSystemSleeping3]

PowerDeviceD2

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Notez que les entrées du tableau DeviceState indiquent l’état d’alimentation de l’appareil le plus élevé que l’appareil peut prendre en charge pour l’état d’alimentation du système correspondant. Dans l’exemple précédent, l’appareil peut être à l’état D3 pour n’importe quel état d’alimentation du système, l’état D2 pour les états d’alimentation système PowerSystemWorking via PowerSystemSleeping3 et l’état D1 pour l’état système PowerSystemWorking.

Le pilote de bus ou le filtre ACPI définit ces valeurs en fonction des fonctionnalités du nœud d’appareil parent.

En règle générale, les pilotes de niveau supérieur ne doivent pas modifier ces valeurs. Toutefois, dans les rares cas où une telle modification est nécessaire, un pilote peut spécifier un état inférieur (moins alimenté) à celui du pilote de bus ou du filtre ACPI retourné à l’origine. Par exemple, supposons que DeviceState[PowerSystemSleeping1] est mappé à PowerDeviceD2, comme dans le tableau ci-dessus. Un pilote peut remplacer cette valeur par PowerDeviceD3, mais pas par PowerDeviceD1 ou PowerDeviceD0.