WDF_DEVICE_POWER_CAPABILITIES structure (wdfdevice.h)
[S’applique à KMDF et UMDF]
La structure WDF_DEVICE_POWER_CAPABILITIES décrit les capacités d’alimentation d’un appareil.
Syntaxe
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;
Membres
Size
Taille, en octets, de cette structure.
DeviceD1
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil prend en charge l’état de veille de l’appareil D1. Pour plus d’informations sur la valeur WDF_TRI_STATE , consultez la section Remarques suivante.
DeviceD2
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil prend en charge l’état de veille de l’appareil D2.
WakeFromD0
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil peut répondre à un signal de veille alors qu’il est dans son état D0.
WakeFromD1
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil peut répondre à un signal de veille alors qu’il est dans son état D1.
WakeFromD2
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil peut répondre à un signal de veille alors qu’il est dans son état D2.
WakeFromD3
Valeur de type WDF_TRI_STATE qui indique, si elle est définie sur WdfTrue, que l’appareil peut répondre à un signal de veille alors qu’il est dans son état D3.
DeviceState[PowerSystemMaximum]
Tableau de valeurs de type DEVICE_POWER_STATE qui indique l’état de l’appareil le plus alimenté pris en charge par l’appareil pour chaque état d’alimentation du système. Ce tableau utilise l’énumération SYSTEM_POWER_STATE comme valeurs d’index. Si la valeur d’un élément de tableau est PowerDeviceMaximum, l’infrastructure utilise la valeur que le système d’exploitation a stockée pour cet élément. Les énumérations DEVICE_POWER_STATE et SYSTEM_POWER_STATE sont définies dans wdm.h. Pour plus d’informations sur le membre DeviceState , consultez DeviceState.
DeviceWake
Valeur de type DEVICE_POWER_STATE qui indique l’état d’alimentation le plus faible de l’appareil à partir duquel l’appareil peut envoyer un signal de sortie de veille au système. Si cette valeur est PowerDeviceMaximum, le framework utilise la valeur actuellement stockée dans le système pour ce membre.
SystemWake
Valeur de type SYSTEM_POWER_STATE qui indique l’état d’alimentation du système le plus bas à partir duquel l’appareil peut envoyer un signal de sortie de veille au système. Si cette valeur est PowerSystemMaximum, l’infrastructure utilise la valeur actuellement stockée dans le système pour ce membre. SYSTEM_POWER_STATE valeurs sont définies dans wdm.h.
D1Latency
Durée approximative, en unités de 100 nanosecondes, dont l’appareil a besoin pour revenir à son état D0 à partir de son état D1. Si cette valeur est -1, l’infrastructure utilise la valeur actuellement stockée dans le système pour ce membre.
D2Latency
Durée approximative, en unités de 100 nanosecondes, dont l’appareil a besoin pour revenir à son état D0 à partir de son état D2. Si cette valeur est -1, l’infrastructure utilise la valeur actuellement stockée dans le système pour ce membre.
D3Latency
Durée approximative, en unités de 100 nanosecondes, dont l’appareil a besoin pour revenir à son état D0 à partir de son état D3. Si cette valeur est -1, l’infrastructure utilise la valeur actuellement stockée dans le système pour ce membre.
IdealDxStateForSx
Valeur de type DEVICE_POWER_STATE qui indique l’état de veille de l’appareil que l’appareil doit entrer lorsque le système passe à l’état de veille du système et que l’appareil n’est pas activé pour sortir le système. Si cette valeur est égale à zéro, l’infrastructure utilise PowerDeviceD3. Cette valeur ne peut pas être PowerDeviceD0.
Si un pilote spécifie une valeur IdealDxStateForSx qui représente un état de veille d’appareil plus puissant que celui spécifié par la pile de l’appareil dans le tableau DeviceState de l’appareil, le framework utilise l’état de faible puissance qui se trouve dans le tableau. Par exemple, si le pilote spécifie une valeur IdealDxStateForSx de D1 et que le tableau DeviceState de l’appareil spécifie D2, l’infrastructure utilise D2.
Remarques
La structure WDF_DEVICE_POWER_CAPABILITIES est utilisée comme entrée dans WdfDeviceSetPowerCapabilities.
Plusieurs membres utilisent le type WDF_TRI_STATE . Pour ces membres, les règles suivantes s’appliquent :
- Une valeur de WdfTrue indique que l’appareil prend en charge la fonctionnalité, et une valeur de WdfFalse indique que ce n’est pas le cas.
- Les pilotes de fonction et les pilotes de filtre peuvent spécifier WdfTrue ou WdfFalse, ou une valeur de WdfUseDefault pour indiquer que l’infrastructure doit utiliser la valeur fournie par un pilote inférieur dans la pile. Par exemple, si un pilote de bus spécifie WdfTrue pour DeviceD1 et que le pilote de fonction de l’appareil spécifie WdfUseDefault, l’infrastructure utilise WdfTrue pour la fonctionnalité.
- Lorsqu’un pilote de bus appelle WdfDeviceSetPowerCapabilities après avoir créé un objet d’appareil pour un appareil enfant, il doit spécifier WdfTrue ou WdfFalse. Un pilote de bus peut spécifier WdfUseDefault pour un appareil enfant, mais dans ce cas , WdfUseDefault est identique à WdfFalse.
Configuration requise
Condition requise | Valeur |
---|---|
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfdevice.h (inclure Wdf.h) |