Share via


DeviceState

El miembro DeviceState de DEVICE_CAPABILITIES es una matriz de valores de DEVICE_POWER_STATE que se indexan mediante SYSTEM_POWER_STATE valores que van desde PowerSystemWorking a PowerSystemShutdown. Cada elemento de la matriz contiene el estado máximo de alimentación del dispositivo (con tecnología más alta) que el dispositivo puede admitir para el estado de alimentación del sistema indicado por el índice o PowerDeviceUnspecified si no se admite el estado de energía del sistema.

Por ejemplo, en un sistema que solo admite estados de alimentación del sistema S0, S4 y S5, la matriz DeviceState para un dispositivo que solo admite los estados D0 y D3 contiene los valores que se muestran en la tabla siguiente.

Elemento DeviceState Value

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping2]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping3]

PowerDeviceUnspecified

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

En un sistema que admite todos los estados de energía del sistema, en la tabla siguiente se enumeran los valores que la matriz contendría para un dispositivo que debe estar en el estado D2 o inferior siempre que el sistema vaya a cualquier estado intermedio de suspensión y en estado D3 cuando el sistema hiberna.

Elemento DeviceState Value

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceD2

DeviceState[PowerSystemSleeping2]

PowerDeviceD2

DeviceState[PowerSystemSleeping3]

PowerDeviceD2

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Tenga en cuenta que las entradas de la matriz DeviceState indican el estado de potencia de dispositivo más alto que el dispositivo puede admitir para el estado de alimentación del sistema correspondiente. En el ejemplo anterior, el dispositivo podría estar en el estado D3 para cualquier estado de alimentación del sistema, el estado D2 para los estados de energía del sistema PowerSystemWorking a través de PowerSystemSleeping3 y el estado D1 para el estado del sistema PowerSystemWorking.

El controlador de bus o el filtro ACPI establece estos valores en función de las funciones del nodo de dispositivo primario.

Como regla general, los controladores de nivel superior no deben cambiar estos valores. Sin embargo, en las raras circunstancias en las que se necesita este cambio, un controlador puede especificar un estado inferior (menos alimentado) que el controlador de autobús o el filtro ACPI devuelto originalmente. Por ejemplo, supongamos que DeviceState[PowerSystemSleeping1] se asigna a PowerDeviceD2, como en la tabla anterior. Un controlador puede cambiar este valor a PowerDeviceD3, pero no a PowerDeviceD1 o PowerDeviceD0.