Partager via


IPowerPolicyCallbackWakeFromS0 ::OnArmWakeFromS0, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer avec UMDF.]

Un pilote OnArmWakeFromS0 bras de fonction de rappel (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 alimentation, si le système reste dans l’état de fonctionnement du système (S0).

Syntaxe

HRESULT OnArmWakeFromS0(
  [in] IWDFDevice *pWdfDevice
);

Paramètres

[in] pWdfDevice

Pointeur vers l’interface IWDFDevice de l’objet d’appareil qui représente l’un des appareils du pilote.

Valeur de retour

Si l’opération réussit, la fonction de rappel OnArmWakeFromS0 doit retourner S_OK ou une autre valeur d’état pour laquelle SUCCEEDED(status) est égal à TRUE. Sinon, il doit retourner une valeur d’état pour laquelle SUCCEEDED(status) est égal à FALSE.

Si SUCCEEDED(status) est égal FALSE, l’infrastructure appelle la fonction de rappel IPowerPolicyCallbackWakeFromS0 ::OnDisarmWakeFromS0 du pilote. (L’infrastructure ne signale pas de défaillance d’appareil au gestionnaire PnP.)

Remarques

Votre pilote doit fournir une fonction de rappel OnArmWakeFromS0 si le pilote prend en charge l’interface IPowerPolicyCallbackWakeFromS0.

La fonction de rappel OnArmWakeFromS0 gère les opérations spécifiques à l’appareil nécessaires pour permettre à l’appareil de détecter un événement externe qui déclenche un signal de veille sur le bus. Le pilote de bus en mode noyau gère des 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 OnArmWakeFromS0, l’infrastructure l’appelle alors que l’appareil est toujours dans l’état d’alimentation de l’appareil D0, avant que le pilote de bus réduise l’état d’alimentation de l’appareil, mais une fois que l’infrastructure a envoyé un IRP d’attente/éveil au nom du pilote.

Le processus se produit dans la séquence suivante :

  1. L’infrastructure détermine que l’appareil a été inactif pendant une durée prédéfinie.
  2. L’infrastructure appelle la fonction de rappel OnArmWakeFromS0 du pilote.
  3. L’infrastructure demande au pilote le bus de l’appareil de réduire la puissance de l’appareil.
Juste avant que votre appareil ne passe à un état de faible alimentation, l’infrastructure appelle la fonction de rappel IPnpCallback ::OnD0Exit fonction de rappel de votre pilote.

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 dans UMDF.

Vous n’avez pas besoin de fournir une fonction de rappel OnArmWakeFromS0 si votre appareil :

  • Appareil USB qui prend en charge la « suspension sélective ».
  • Impossible de mettre hors tension alors 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.
Si votre appareil prend en charge la « suspension sélective » USB et si votre pilote spécifie IdleUsbSelectiveSuspend lorsqu’il appelle IWDFDevice2 ::AssignS0IdleSettings, le framework envoie une demande de « suspension sélective » au pilote de bus USB lorsque l’appareil a été inactif pendant une durée prédéfinie.

Pour plus d’informations sur cette fonction de rappel, consultez prise en charge des Power-Down inactifs dans les pilotes basés sur UMDF.

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.9
d’en-tête wudfddi.h (include Wudfddi.h)

Voir aussi

IPowerPolicyCallbackWakeFromS0

IPowerPolicyCallbackWakeFromS0 ::OnDisarmWakeFromS0

IPowerPolicyCallbackWakeFromS0 ::OnWakeFromS0Triggered