Compartir a través de


estructura de WDF_DEVICE_POWER_CAPABILITIES (wdfdevice.h)

[Se aplica a KMDF y UMDF]

La estructura de WDF_DEVICE_POWER_CAPABILITIES describe las funcionalidades de energía de un dispositivo.

Sintaxis

typedef struct _WDF_DEVICE_POWER_CAPABILITIES {
  ULONG              Size;
  WDF_TRI_STATE      DeviceD1;
  WDF_TRI_STATE      DeviceD2;
  WDF_TRI_STATE      WakeFromD0;
  WDF_TRI_STATE      WakeFromD1;
  WDF_TRI_STATE      WakeFromD2;
  WDF_TRI_STATE      WakeFromD3;
  DEVICE_POWER_STATE DeviceState[PowerSystemMaximum];
  DEVICE_POWER_STATE DeviceWake;
  SYSTEM_POWER_STATE SystemWake;
  ULONG              D1Latency;
  ULONG              D2Latency;
  ULONG              D3Latency;
  DEVICE_POWER_STATE IdealDxStateForSx;
} WDF_DEVICE_POWER_CAPABILITIES, *PWDF_DEVICE_POWER_CAPABILITIES;

Miembros

Size

Tamaño, en bytes, de esta estructura.

DeviceD1

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo admite el estado de suspensión del dispositivo D1. Para obtener más información sobre el valor de WDF_TRI_STATE , vea la siguiente sección Comentarios.

DeviceD2

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo admite el estado de suspensión del dispositivo D2.

WakeFromD0

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo puede responder a una señal de reactivación mientras está en su estado D0.

WakeFromD1

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo puede responder a una señal de reactivación mientras está en su estado D1.

WakeFromD2

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo puede responder a una señal de reactivación mientras está en su estado D2.

WakeFromD3

Valor con tipo WDF_TRI_STATE que indica, si se establece en WdfTrue, que el dispositivo puede responder a una señal de reactivación mientras está en su estado D3.

DeviceState[PowerSystemMaximum]

Matriz de valores con tipo DEVICE_POWER_STATE que indica el estado del dispositivo más alimentado que el dispositivo admite para cada estado de alimentación del sistema. Esta matriz usa la enumeración SYSTEM_POWER_STATE como valores de índice. Si el valor de un elemento de matriz es PowerDeviceMaximum, el marco usa cualquier valor que el sistema operativo haya almacenado para ese elemento. Las enumeraciones DEVICE_POWER_STATE y SYSTEM_POWER_STATE se definen en wdm.h. Para obtener más información sobre el miembro DeviceState , consulte DeviceState.

DeviceWake

Valor DEVICE_POWER_STATE tipo que indica el estado de energía del dispositivo más bajo desde el que el dispositivo puede enviar una señal de reactivación al sistema. Si este valor es PowerDeviceMaximum, el marco usa cualquier valor almacenado actualmente en el sistema para este miembro.

SystemWake

Valor SYSTEM_POWER_STATE tipo que indica el estado de energía del sistema más bajo desde el que el dispositivo puede enviar una señal de reactivación al sistema. Si este valor es PowerSystemMaximum, el marco usa cualquier valor almacenado actualmente en el sistema para este miembro. SYSTEM_POWER_STATE valores se definen en wdm.h.

D1Latency

El tiempo aproximado, en unidades de 100 nanosegundos, que el dispositivo necesita para volver a su estado D0 desde su estado D1. Si este valor es -1, el marco usa cualquier valor almacenado actualmente en el sistema para este miembro.

D2Latency

El tiempo aproximado, en unidades de 100 nanosegundos, que el dispositivo necesita para volver a su estado D0 desde su estado D2. Si este valor es -1, el marco usa cualquier valor almacenado actualmente en el sistema para este miembro.

D3Latency

El tiempo aproximado, en unidades de 100 nanosegundos, que el dispositivo necesita para volver a su estado D0 desde su estado D3. Si este valor es -1, el marco usa cualquier valor almacenado actualmente en el sistema para este miembro.

IdealDxStateForSx

Valor con tipo DEVICE_POWER_STATE que indica el estado de suspensión del dispositivo que el dispositivo debe especificar cuando el sistema entra en cualquier estado de suspensión del sistema y el dispositivo no está habilitado para reactivar el sistema. Si este valor es cero, el marco usa PowerDeviceD3. Este valor no puede ser PowerDeviceD0.

Si un controlador especifica un valor IdealDxStateForSx que representa un estado de suspensión de dispositivo de mayor potencia que la pila del dispositivo ha especificado en la matriz DeviceState del dispositivo, el marco usa el estado de menor potencia que está en la matriz. Por ejemplo, si el controlador especifica un valor IdealDxStateForSx de D1 y la matriz DeviceState del dispositivo especifica D2, el marco usa D2.

Comentarios

La estructura WDF_DEVICE_POWER_CAPABILITIES se usa como entrada para WdfDeviceSetPowerCapabilities.

Varios miembros usan el tipo WDF_TRI_STATE . Para estos miembros, se aplican las reglas siguientes:

  • Un valor de WdfTrue indica que el dispositivo admite la funcionalidad y un valor de WdfFalse indica que no lo hace.
  • Los controladores de función y los controladores de filtro pueden especificar WdfTrue o WdfFalse, o un valor de WdfUseDefault para indicar que el marco debe usar el valor proporcionado por un controlador inferior en la pila. Por ejemplo, si un controlador de bus especifica WdfTrue para DeviceD1 y el controlador de función del dispositivo especifica WdfUseDefault, el marco usa WdfTrue para la funcionalidad.
  • Cuando un controlador de autobús llama a WdfDeviceSetPowerCapabilities después de crear un objeto de dispositivo para un dispositivo secundario, debe especificar WdfTrue o WdfFalse. Un controlador de bus puede especificar WdfUseDefault para un dispositivo secundario, pero en este caso WdfUseDefault es el mismo que WdfFalse.
Para inicializar una estructura de WDF_DEVICE_POWER_CAPABILITIES, un controlador debe llamar a WDF_DEVICE_POWER_CAPABILITIES_INIT.

Requisitos

Requisito Value
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluya Wdf.h)

Consulte también

WDF_DEVICE_PNP_CAPABILITIES