Freigeben über


Niedriger Energiestatus durch Medientrennung

Die Funktion "Low Power On Media Disconnect" (D3 on disconnect) spart Energie, indem ein Netzwerkadapter in einen Energiesparzustand (D3) versetzt wird, wenn die Medien getrennt werden. Wenn die Medien wiederhergestellt werden, wird der Netzwerkadapter wieder in den Zustand "Full-Power" (D0) gebracht.

NDIS verwendet die D3-Funktion beim Trennen unter den folgenden Bedingungen:

  • Die Netzwerkadapterhardware muss in der Lage sein, ein Aktivierungsereignis bei der Medienverbindung zu generieren.

  • Der Miniporttreiber muss die Aktivierungsereignisfunktion des Netzwerkadapters im MinLinkChangeWakeUp-Element der NDIS_PM_CAPABILITIES-Struktur melden.

  • Der Wert von MinLinkChangeWakeUp muss dem Wert des DeviceWake-Elements der DEVICE_CAPABILITIES-Struktur entsprechen, der vom IRP_MN_QUERY_CAPABILITIES-IRP gemeldet wird.

  • Der Miniporttreiber muss sich als NDIS 6.20-Treiber oder höher registrieren.

  • Der Netzwerkadapter muss ein Ethernet-PCI-Adapter sein.

  • Die Aktivierungsereignisfunktion muss durch die *DeviceSleepOnDisconnect-Standard-INF-Datei Schlüsselwort (keyword) aktiviert werden.

  • Der Computer-Chipsatz muss in der Lage sein, das Aktivierungsereignis ordnungsgemäß zu verteilen, während der Computer vollständig mit Strom versorgt ist. NDIS überprüft dies durch Abfragen der DEVPKEY_PciDevice_S0WakeupSupported PCI-Eigenschaft.

Beachten Sie, dass D3 beim Trennen nur verfügbar ist, während der Computer im betriebsfähigen Zustand (S0) vollständig mit Strom versorgt ist. Dieses Feature wird abgebrochen, wenn der Computer in einen Ruhezustand wechselt, um zu verhindern, dass der Computer aktiviert wird, wenn der Verbindungszustand extern gezyklust wird. Das heißt, wenn ein Schalter ausgeschaltet und eingeschaltet ist. Weitere Informationen zum Festlegen des Energiesparzustands, wenn ein Computer in einen Ruhezustand wechselt, finden Sie unter Low Power for Wake on LAN.

Ein Miniporttreiber meldet D3 über Die Trennungsfunktionen während der Initialisierung. Weitere Informationen zum Melden von D3 zu Trennungsfunktionen finden Sie unter Reporting Power Management Capabilities.For more information about reporting D3 on disconnect capabilities, see Reporting Power Management Capabilities.

Die *DeviceSleepOnDisconnect-Standard-INF-Datei Schlüsselwort (keyword) gibt an, ob das Gerät die Unterstützung für D3 beim Trennen aktiviert oder deaktiviert hat. Weitere Informationen zu diesem INF-Schlüsselwort (keyword) finden Sie unter Standardisierte INF-Schlüsselwörter für die Energieverwaltung.

Während der Initialisierung muss ein Miniporttreiber, der D3 beim Trennen unterstützt, die niedrigste Leistungsstufe melden, auf der das Betriebssystem über das Medienverbindungsereignis benachrichtigt werden kann. Der Miniporttreiber meldet die Leistungsstufe im MinLinkChangeWakeUp-Element der NDIS_PM_CAPABILITIES-Struktur . Der Miniporttreiber kann beispielsweise NdisDeviceStateD3 melden.

Die folgende Abbildung veranschaulicht die Abfolge von Ereignissen, um einen Netzwerkadapter nach einem Medientrennungsereignis auf einen Energiesparzustand festzulegen.

Diagramm zur Veranschaulichung der Abfolge von Ereignissen, um einen Netzwerkadapter nach einem Medientrennungsereignis auf einen Energiesparzustand festzulegen.

Wenn der Adapter eine Medientrennung erkennt, tritt die folgende Sequenz auf:

  1. Die Netzwerkadapterhardware erkennt ein Medientrennungsereignis und übergibt die Informationen an den Miniporttreiber.

  2. Der Miniporttreiber benachrichtigt NDIS über ein Medientrennungsereignis mithilfe der NDIS_STATUS_LINK_STATE status-Anzeige. Der StatusBuffer-Member der NDIS_STATUS_INDICATION-Struktur enthält eine NDIS_LINK_STATE-Struktur . Der MediaConnectStateDisconnected-Wert wird im MediaConnectState-Element der NDIS_LINK_STATE-Struktur festgelegt.

  3. NDIS verwendet OID_PM_PARAMETERS , um Wake-on-LAN zu deaktivieren und die Aktivierung bei Medienverbindung zu aktivieren (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED im WakeUpFlags-Element festgelegt ist).

  4. NDIS verwendet die OID_PNP_SET_POWER OID, um den Miniporttreiber über den neuen Energiezustand (D3) zu benachrichtigen.

  5. NDIS sendet dem PCIe-Bus eine IRP_MN_WAIT_WAKE IRP, um auf ein Ereignis für die erneute Verbindung zu warten.

  6. NDIS legt den PCIe-Bus mit dem IRP_MN_SET_POWER IRP auf den D3-Zustand fest.

Die folgende Abbildung veranschaulicht die Abfolge von Ereignissen zum Wiederherstellen der vollständigen Stromversorgung eines Netzwerkadapters nach einem Medienverbindungsereignis.

Diagramm zur Veranschaulichung der Abfolge von Ereignissen zum Wiederherstellen der vollständigen Leistung einer Nic nach einem Medienverbindungsereignis.

Wenn die Medien wiederhergestellt werden, tritt die folgende Sequenz auf:

  1. Der Netzwerkadapter reaktiviert das System, indem wake# auf dem PCIe-Bus oder PME# auf dem PCI-Bus bestätigt wird.

  2. Der Bus schließt die ausstehende IRP_MN_WAIT_WAKE IRP ab. Das IRP steht aus dem letzten Schritt der Trennsequenz aus.

  3. NDIS setzt den Bus mit dem IRP_MN_SET_POWER IRP auf Volle Leistung (D0).

  4. NDIS benachrichtigt den Miniporttreiber, dass sich der Netzwerkadapter mit der OID-Set-Anforderung OID_PNP_SET_POWER, dass sich der Netzwerkadapter im Vollstromzustand (D0) befindet.

  5. Der Netzwerkadapter benachrichtigt NDIS über ein Medienverbindungsereignis mit der NDIS_STATUS_LINK_STATE status Angabe. Der MediaConnectStateConnected-Wert wird im MediaConnectState-Element der NDIS_LINK_STATE-Struktur festgelegt.

Wenn der Miniporttreiber ab NDIS 6.30 NDIS_STATUS_PM_WAKE_REASON status Hinweise unterstützt, muss er diese status Benachrichtigung ausgeben, wenn der Netzwerkadapter das System reaktiviert. Der Treiber gibt diese status Benachrichtigung aus, während er die OID-Set-Anforderung von OID_PNP_SET_POWER für den Übergang in einen Vollleistungszustand (D0) verarbeitet.

Weitere Informationen finden Sie unter NDIS Wake Reason Status Indications( NDIS Wake Reason Status Indications).

Hinweis Wenn der Miniporttreiber einen NDIS_STATUS_PM_WAKE_REASON status Hinweis ausgibt, muss er dies tun, bevor er die NDIS_STATUS_LINK_STATE status-Anzeige ausgibt.