Freigeben über


Unterstützung Multiple-Component Geräte mit einem oder mehreren Funktionszuständen

[Gilt nur für KMDF]

Ein KMDF-Treiber für ein Gerät mit mehreren Komponenten kann einen oder mehrere funktionsbezogene Energiezustände für jede Komponente definieren.

In diesem Fall registriert sich der Treiber direkt beim Power Management Framework (PoFx). Um anzugeben, dass WDF nicht bei PoFx registriert werden soll, ruft der Treiber WdfDeviceAssignS0IdleSettings auf, wobei das IdleTimeoutType-Element der WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS Struktur auf DriverManagedIdleTimeout festgelegt ist. In der Regel ruft der Treiber diese Methode über seine Rückruffunktion EvtDriverDeviceAdd auf.

Als Nächstes muss sich der Treiber bei PoFx registrieren. Dazu ruft der Treiber PoFxRegisterDevice und dann PoFxStartDevicePowerManagement auf. Ihr Treiber muss sich nur einmal bei PoFx registrieren, wenn das Gerät zum ersten Mal gestartet wird. Eine Möglichkeit dazu ist das Aufrufen dieser Routinen über eine vom Treiber bereitgestellte EvtDeviceSelfManagedIoInit-Funktion . EvtDeviceSelfManagedIoInit wird nur beim ersten Starten des Geräts aufgerufen.

Wenn das Gerät entfernt wird, muss der Treiber PoFxUnregisterDevice aufrufen, um die Registrierung des Geräts bei PoFx aufzuheben. Um die Registrierung nur einmal aufzuheben, empfehlen wir dem Treiber, diese Routine über eine vom Treiber bereitgestellte EvtDeviceSelfManagedIoFlush-Funktion aufzurufen. EvtDeviceSelfManagedIoFlush wird nur aufgerufen, wenn das Gerät entfernt wird. Durch Aufheben der Registrierung in EvtDeviceSelfManagedIoFlush behält der Treiber die Energieregistrierung während des Ruhezustands und der Übergänge zum Ausgleich bei und muss keine Energieverweise für E/A-Anforderungen beibehalten, die während dieser Übergänge ausstehen.

Wenn der Treiber PoFxRegisterDevice aufruft, erhält er ein Power Registration Handle (POHANDLE), das er für die direkte Interaktion mit PoFx verwenden kann, wie in den folgenden Themen beschrieben:

Darüber hinaus kann der Treiber Power Framework-Routinen direkt aufrufen, um Energiesteuerungsanforderungen zu senden und Latenz-, Residenz- und Reaktivierungsanforderungen anzugeben.

Weitere Informationen zu PoFx finden Sie unter Übersicht über das Power Management Framework.