PoFxNotifySurprisePowerOn-Funktion (wdm.h)
Die PoFxNotifySurprisePowerOn-Routine benachrichtigt das Power Management Framework (PoFx), dass ein Gerät als Nebeneffekt der Stromversorgung eines anderen Geräts aktiviert wurde.
Syntax
void PoFxNotifySurprisePowerOn(
[in] PDEVICE_OBJECT Pdo
);
Parameter
[in] Pdo
Ein Zeiger auf ein physisches Geräteobjekt (PDO ). Dieser Parameter verweist auf eine DEVICE_OBJECT Struktur, die das physische Gerät darstellt, das als Nebeneffekt aktiviert wurde. Der Aufrufer ist immer der Bustreiber, der die PDO aufgelistet hat.
Rückgabewert
Keine
Bemerkungen
Gerätetreiber sollten diese Routine nicht aufrufen. Diese Routine sollte nur von Busfahrern aufgerufen werden.
Ein Bustreiber ruft diese Routine auf, um PoFx darüber zu informieren, dass ein Gerät, das derzeit nicht verwendet wird, nebenbei gleichzeitig mit einem zweiten Gerät eingeschaltet wurde. Beispielsweise kann sich das erste Gerät eine Power Rail-Instanz mit dem zweiten Gerät teilen. So kann das zweite Gerät nicht mit Strom versorgt werden, ohne das erste Gerät als Nebeneffekt mit Strom zu versorgen. Da das erste Gerät nicht verwendet wird, sollte dieses Gerät so konfiguriert werden, dass es so wenig Strom wie möglich verbraucht.
Um einen Übergang zu einem D0-Energiezustand anzufordern, sendet ein Gerätetreiber eine IRP_MN_SET_POWER Anforderung im Gerätestapel. Über die PDO in diesem Stapel empfängt der Bustreiber, der das übergeordnete Element dieses Geräts ist, die Anforderung und antwortet, indem er das Gerät mit Strom versorgt. Wenn der Bustreiber dieses Gerät jedoch nicht einschalten kann, ohne auch ein zweites, nicht verwendetes Gerät einzuschalten, kann der Bustreiber PoFxNotifySurprisePowerOn aufrufen, um den Stromverbrauch des nicht verwendeten Geräts zu reduzieren.
Beim Eintrag zu PoFxNotifySurprisePowerOn befindet sich das durch den Pdo-Parameter dargestellte Gerät in einem nicht initialisierten D0-Energiezustand. In diesem Zustand sind in der Regel alle Komponenten im Gerät aktiviert. Als Reaktion auf den PoFxNotifySurprisePowerOn-Aufruf konfiguriert PoFx das Gerät in einem initialisierten D0-Zustand. Während dieser Konfiguration wechselt PoFx so viele Komponenten wie möglich in Fx-Leistungszustände mit geringer Leistung. Wenn möglich, konfiguriert PoFx das Gerät in einem "heißen D3"-Zustand, der tatsächlich ein D0-Zustand ist, in dem alle einzelnen Komponenten im Gerät ausgeschaltet sind.
PoFxNotifySurprisePowerOn kann nur ein Gerät konfigurieren, das bei PoFx registriert wurde, als das Gerät zuvor deaktiviert wurde. Es sei denn, der Bustreiber weiß, dass ein Gerät nicht registriert ist, sollte der Bustreiber PoFxNotifySurprisePowerOn aufrufen, wenn das Gerät als Nebeneffekt eingeschaltet ist.
Wenn der Bustreiber diese Routine nicht aufrufen kann, wenn das Gerät eingeschaltet ist, bleibt die Gerätehardware möglicherweise auf unbestimmte Zeit im vollständig aktivierten Zustand, während der PoFx davon ausgeht, dass das Gerät im D3-Netzzustand (vollständig ausgeschaltet) verbleibt.
Rufen Sie PoFxNotifySurprisePowerOn nur auf, wenn das Gerät nebenbei eingeschaltet wurde, als Nebeneffekt des Einschaltens eines anderen Geräts. Wenn der Bustreiber als Reaktion auf einen DevicePowerRequiredCallback-Rückruf oder eine IRP_MN_SET_POWER Anforderung für einen D0-Übergang die Stromversorgung eines Geräts wiederherstellt, rufen Sie stattdessen die PoFxReportDevicePoweredOn-Routine auf, um PoFx darüber zu informieren, wenn die Stromversorgung des Geräts wiederhergestellt wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 8. |
Zielplattform | Universell |
Header | wdm.h |
Bibliothek | Ntoskrnl.lib |
DLL | Ntoskrnl.exe |
IRQL | <= DISPATCH_LEVEL |