Partager via


EVT_HIDSPICX_NOTIFY_POWERDOWN fonction de rappel (hidspicx.h)

La fonction de rappel EvtHidspicxNotifyPowerdown est implémentée par le pilote client pour recevoir des notifications lorsque l’appareil est sur le point de passer à un état de faible consommation.

Syntaxe

EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;

NTSTATUS EvtHidspicxNotifyPowerdown(
  WDFDEVICE Device,
  BOOLEAN ArmForWake
)
{...}

Paramètres

Device

Handle pour un objet d’appareil d’infrastructure que le pilote client a obtenu à partir d’un appel précédent à WdfDeviceCreate.

ArmForWake

Valeur booléenne indiquant si l’appareil sera armé pour la sortie de veille dans l’état cible pour la transition d’alimentation imminente.

Valeur retournée

NTSTATUS indiquant si la préparation de la transition d’alimentation a réussi ou non. Cette méthode n’est pas censée échouer au moment de l’exécution et peut entraîner une défaillance de l’appareil par HidSpiCx.

Remarques

Le pilote client est censé implémenter et fournir un rappel que HidSpiCx utilisera pour informer le client d’une panne imminente. L’objectif de ce rappel est d’autoriser l’extension de classe à indiquer au client d’arrêter le traitement des interruptions à partir de l’appareil, car l’appareil est sur le point de passer à un état de faible consommation. Le client ne doit pas reprendre le traitement des interruptions tant qu’un rappel au rappel WDF D0Entry du client n’a pas eu lieu.

L’objectif de cette fonction est d’éviter le cas lorsque vous entrez dans un état de veille où l’extension de classe envoie une SET_POWER SLEEP commande à l’appareil, et où l’appareil déclare l’interruption de sortie de veille avant que l’IRP Dx ne soit terminée par l’extension de classe et le pilote client. Sans un rappel supplémentaire indiquant au client d’arrêter le traitement matériel des interruptions, le matériel émettrait une lecture SPI en réponse à une interruption de veille, ce qui violerait le protocole exigeant que l’hôte envoie d’abord une SET_POWER ON commande avant de traiter les interruptions de l’appareil.

Cette fonction sera appelée par l’extension de classe au niveau de l’IRQL passif, et le client ne doit pas revenir tant que le traitement de l’interruption n’a pas cessé.

Si l’appareil sera armé ou non pour le réveil au niveau du bus est fourni au client par commodité, ce qui permet au pilote client d’éviter la surveillance des WAIT_WAKE commandes s’il ne s’agit pas d’un pilote de bus.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11
En-tête hidspicx.h
IRQL PASSIVE_LEVEL

Voir aussi

États d’alimentation de l’appareil

États Low-Power de l’appareil