Behandeln von Power IRPs

Treiber verarbeiten Energie-IRPs in einer DispatchPower-Routine . Alle Energieverwaltungsanforderungen weisen den haupt-IRP-Code IRP_MJ_POWER und einen der folgenden Nebencodes auf:

IRP_MN_QUERY_POWER – Abfragen, um zu bestimmen, ob das Ändern des Energiezustands möglich ist

IRP_MN_SET_POWER – Fordert eine Änderung von einem Energiezustand in einen anderen an.

IRP_MN_WAIT_WAKE – Fordert an, dass ein Gerät aktiviert wird, um sich selbst oder das System zu reaktivieren

IRP_MN_POWER_SEQUENCE – Fordert Informationen zum Optimieren der Energiewiederherstellung auf einem bestimmten Gerät an.

Unterstützung für IRP_MN_SET_POWER und IRP_MN_QUERY_POWER ist erforderlich. Alle Treiber müssen darauf vorbereitet sein, diese IRPs zu verarbeiten.

Unterstützung für IRP_MN_WAIT_WAKE ist für alle Treiber im Gerätestapel für jedes Gerät erforderlich, das als Reaktion auf ein externes Signal aktiviert werden kann. Ein Treiber sendet dieses IRP, um das Gerät für die Aktivierung zu aktivieren.

Die Unterstützung für IRP_MN_POWER_SEQUENCE ist optional. Dieses IRP bietet eine Optimierung für Geräte, bei denen die Wiederherstellung der Stromversorgung sehr lange dauert.

Ein Energie-IRP kann einen Systembetrieb oder einen Gerätebetrieb angeben. Power IRPs für das System und Power IRPs für einzelne Geräte nehmen etwas unterschiedliche Pfade durch einen Gerätestapel, wie in den folgenden Abschnitten erläutert.