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 |