Freigeben über


EVT_HIDSPICX_NOTIFY_POWERDOWN Rückruffunktion (hidspicx.h)

Die Rückruffunktion EvtHidspicxNotifyPowerdown wird vom Clienttreiber implementiert, um Benachrichtigungen zu empfangen, wenn das Gerät in einen Energiesparzustand übergehen soll.

Syntax

EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;

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

Parameter

Device

Ein Handle für ein Framework-Geräteobjekt, das der Clienttreiber aus einem vorherigen Aufruf von WdfDeviceCreate abgerufen hat.

ArmForWake

Boolescher Wert, der angibt, ob das Gerät für die Aktivierung im Zielzustand für den bevorstehenden Energieübergang bewaffnet ist.

Rückgabewert

NTSTATUS , der angibt, ob die Vorbereitung auf den Energieübergang erfolgreich war oder nicht. Es wird nicht erwartet, dass diese Methode zur Laufzeit fehlschlägt, und kann zu einem Ausfall des Geräts durch HidSpiCx führen.

Hinweise

Vom Clienttreiber wird erwartet, dass er einen Rückruf implementiert und bereitstellt, den HidSpiCx verwendet, um den Client über einen bevorstehenden Herunterfahren zu benachrichtigen. Der Zweck dieses Rückrufs besteht darin, der Klassenerweiterung zu ermöglichen, den Client anzuweisen, die Verarbeitung von Interrupts vom Gerät zu beenden, da das Gerät in einen Zustand mit geringer Leistung versetzt wird. Der Client sollte die Verarbeitungsunterbrechungen erst fortsetzen, wenn ein Rückruf für den D0Entry-WDF-Rückruf des Clients erfolgt ist.

Der Zweck dieser Funktion besteht darin, den Fall zu vermeiden, wenn ein Ruhezustand eintritt, in dem die Klassenerweiterung einen SET_POWER SLEEP Befehl an das Gerät sendet und das Gerät einen Interrupt zum Aufwachen angibt, bevor die Dx-IRP sowohl durch die Klassenerweiterung als auch durch den Clienttreiber abgeschlossen wird. Ohne einen zusätzlichen Rückruf, der den Client anweist, die Hardwareverarbeitung von Interrupts zu beenden, würde die Hardware als Reaktion auf einen Wake-Interrupt einen SPI-Lesevorgang ausgeben. Dies würde gegen das Protokoll verstoßen, das den Host verpflichtet, zuerst einen SET_POWER ON Befehl zu senden, bevor interrupts vom Gerät verarbeitet werden.

Diese Funktion wird von der Klassenerweiterung bei passivem IRQL aufgerufen, und der Client sollte erst zurückgegeben werden, wenn die Interruptverarbeitung beendet wurde.

Ob das Gerät für die Aktivierung auf Busebene bewaffnet ist oder nicht, wird dem Client als Komfort bereitgestellt, sodass der Clienttreiber die Überwachung für WAIT_WAKE Befehle vermeiden kann, wenn es sich nicht um einen Bustreiber handelt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11
Kopfzeile hidspicx.h
IRQL PASSIVE_LEVEL

Weitere Informationen

Gerätestromzustände

Geräte-Low-Power-Zustände