EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 fonction de rappel (wdfdevice.h)
[S’applique à KMDF et UMDF]
Les bras de fonction de rappel d’événement EvtDeviceArmWakeFromS0 d’un pilote (c’est-à-dire active) un appareil afin qu’il puisse déclencher un signal de veille alors qu’il est dans un état d’appareil à faible consommation d’énergie, si le système reste à l’état de fonctionnement du système (S0).
Syntaxe
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;
NTSTATUS EvtWdfDeviceArmWakeFromS0(
[in] WDFDEVICE Device
)
{...}
Paramètres
[in] Device
Handle d’un objet d’appareil framework.
Valeur retournée
Si l’opération réussit, la fonction de rappel EvtDeviceArmWakeFromS0 doit retourner STATUS_SUCCESS ou une autre valeur status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, il doit retourner une valeur status pour laquelle NT_SUCCESS(status) est false.
Si NT_SUCCESS(status) est égal à FALSE, l’infrastructure n’appelle pas la fonction de rappel EvtDeviceDisarmWakeFromS0 du pilote. (L’infrastructure ne signale pas une défaillance d’appareil au gestionnaire PnP.)
Remarques
Pour inscrire une fonction de rappel EvtDeviceArmWakeFromS0 , un pilote doit appeler WdfDeviceInitSetPowerPolicyEventCallbacks. En outre, le pilote doit définir IdleCanWakeFromS0 dans le membre IdleCaps de sa structure WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS .
La fonction de rappel EvtDeviceArmWakeFromS0 gère les opérations spécifiques à l’appareil qui sont nécessaires pour permettre à l’appareil de détecter un événement externe qui déclenche un signal de veille sur le bus. La fonction de rappel EvtDeviceEnableWakeAtBus du pilote de bus gère les opérations spécifiques au bus, telles que l’activation du signal PME (Power Management Event) du bus PCI.
Si le pilote a inscrit une fonction de rappel EvtDeviceArmWakeFromS0 , l’infrastructure l’appelle alors que l’appareil est toujours à l’état d’alimentation D0, avant que le pilote de bus ne réduise l’état d’alimentation de l’appareil, mais après que l’infrastructure a envoyé un IRP d’attente/veille pour le compte du pilote.
Le processus se produit dans l’ordre suivant :
- L’infrastructure détermine que l’appareil a été inactif pendant une période prédéfinie.
- Le framework appelle la fonction de rappel EvtDeviceArmWakeFromS0 du pilote.
- L’infrastructure demande au pilote du bus de l’appareil de réduire l’alimentation de l’appareil.
Pour plus d’informations sur le moment où l’infrastructure appelle cette fonction de rappel, consultez Scénarios pnP et de gestion de l’alimentation.
Vous n’avez pas besoin de fournir une fonction de rappel EvtDeviceArmWakeFromS0 si votre appareil :
- Il s’agit d’un périphérique USB qui prend en charge la « suspension sélective ».
- Impossible de mettre hors tension tant que le système reste entièrement alimenté.
- Ne nécessite pas d’opérations matérielles spéciales qui permettent à l’appareil de déclencher un signal de veille.
Pour plus d’informations sur cette fonction de rappel, consultez Prise en charge de l’arrêt inactif.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfdevice.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |