MINIPORT_IDLE_NOTIFICATION Rückruffunktion (ndis.h)

NDIS ruft die MiniportIdleNotification-Handlerfunktion auf, um den NDIS-Vorgang zum selektiven Anhalten für einen Netzwerkadapter im Leerlauf zu starten. Durch diesen Vorgang wird der Netzwerkadapter angehalten und in einen Energiesparzustand überstellt.

Syntax

MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;

NDIS_STATUS MiniportIdleNotification(
  [in] NDIS_HANDLE MiniportAdapterContext,
  [in] BOOLEAN ForceIdle
)
{...}

Parameter

[in] MiniportAdapterContext

Ein Handle für einen Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx-Funktion zugeordnet hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Netzwerkadapter zu verwalten.

[in] ForceIdle

Ein BOOLEAN-Wert , der bei Festlegung auf TRUE angibt, dass der Miniporttreiber kein Veto gegen die Leerlaufbenachrichtigung einzulegen und mit dem Übergang zum Zustand mit geringer Leistung fortfahren muss.

Weitere Informationen zum ForceIdle-Parameter finden Sie im Abschnitt Hinweise.

Rückgabewert

MiniportIdleNotification gibt einen der folgenden status Werte zurück:

Rückgabecode Beschreibung
NDIS_STATUS_PENDING Der Miniporttreiber hat die Leerlaufbenachrichtigung erfolgreich verarbeitet. Die Benachrichtigung befindet sich in einem ausstehenden Zustand, bis der Miniporttreiber NdisMIdleNotificationComplete aufruft. Hinweis: Der Miniporttreiber darf NDIS_STATUS_SUCCESS von MiniportIdleNotification nicht zurückgeben.
NDIS_STATUS_BUSY Der Miniporttreiber hat gegen die Benachrichtigung im Leerlauf ein Veto eingeschoben, da der Netzwerkadapter weiterhin verwendet wird. Hinweis:MiniportIdleNotification darf diesen status Code nicht zurückgeben, wenn der ForceIdle-Parameter auf TRUE festgelegt ist.
NDIS_STATUS_FAILURE Der Miniporttreiber konnte keine busspezifische IRP erfolgreich ausstellen.

Hinweise

Die MiniportIdleNotification-Handlerfunktion ist für Miniporttreiber erforderlich, die die selektive NDIS-Ansetzungsschnittstelle unterstützen. Weitere Informationen dazu, wie der Treiber seine funktionen für selektives Anhalten registriert, finden Sie unter Registrieren von NDIS-Funktionen für selektives Anhalten von Handlern.

NDIS legt den ForceIdle-Parameter auf FALSE fest, wenn der Netzwerkadapter länger als das Leerlauftimeout inaktiv war. Daher hält NDIS selektiv nur den Netzwerkadapter an .

Die Dauer des Leerlauftimeoutzeitraums wird durch den Wert des *SSIdleTimeout-INF-Schlüsselwort (keyword) angegeben. Weitere Informationen zu diesem Schlüsselwort (keyword) finden Sie unter Standardisierte INF-Schlüsselwörter für selektives Anhalten von NDIS.

Hinweis

NDIS legt den ForceIdle-Parameter nur dann auf TRUE fest, wenn ein System, das mit der AOAC-Technologie (Always On Always Connected) kompatibel ist, in den Zustand Connected Standby übergeht.

Wenn der Miniporttreiber feststellt, dass der Netzwerkadapter verwendet wird, kann er ein Veto gegen die Anforderung für Benachrichtigungen im Leerlauf ausführen, indem er NDIS_STATUS_BUSY zurückgibt. Dies führt dazu, dass NDIS den Aktivitätsmonitor auf dem Netzwerkadapter neu startet.

Wenn der Adapter innerhalb des Leerlauftimeouts wieder inaktiv wird, ruft NDIS MiniportIdleNotification auf.

Hinweis

Der Miniporttreiber darf nicht NDIS_STATUS_BUSY zurückgeben, wenn der ForceIdle-Parameter auf TRUE festgelegt ist.

Nachdem die Benachrichtigung im Leerlauf ausgegeben wurde, kann sie wie folgt abgebrochen und abgeschlossen werden:

  • NDIS kann die ausstehende Leerlaufbenachrichtigung abbrechen, wenn die folgenden Bedingungen zutreffen:

    • Ein überlastendes Protokoll oder Filtertreiber stellt entweder eine Sendepaketanforderung oder eine OID-Anforderung an den Miniporttreiber aus.
    • Der zugrunde liegende Adapter signalisiert ein Aktivierungsereignis, z. B. das Empfangen eines Pakets, das einem WOL-Muster (Wake-on-LAN) entspricht, oder erkennt eine Änderung der Medienverbindung status.

    NDIS bricht die Leerlaufbenachrichtigung ab, indem MiniportCancelIdleNotification aufgerufen wird. Wenn diese Handlerfunktion aufgerufen wird, bricht der Miniporttreiber alle busspezifischen IRPs ab, die er möglicherweise zuvor für die Leerlaufbenachrichtigung ausgegeben hat. Schließlich ruft der Miniporttreiber NdisMIdleNotificationComplete auf, um die Leerlaufbenachrichtigung abzuschließen.

  • Nachdem sich der Netzwerkadapter in einem Energiesparzustand befindet, kann der Miniporttreiber die Benachrichtigung im Leerlauf selbst abschließen, um den Adapter in einen Vollstromzustand zu versetzen. Die Gründe hierfür sind spezifisch für das Design und die Anforderungen des Treibers und Adapters.

    Der Miniporttreiber schließt die Benachrichtigung im Leerlauf ab, indem er NdisMIdleNotificationComplete aufruft. Weitere Informationen dazu, wie der Miniporttreiber die Benachrichtigung im Leerlauf abschließt, finden Sie unter Abschließen der NDIS-Benachrichtigung zum selektiven Anhalten des Leerlaufs.

Weitere Informationen zum Behandeln von Benachrichtigungen im Leerlauf für das selektive Anhalten von NDIS finden Sie unter Behandeln der NDIS-Benachrichtigung zum selektiven Anhalten des Leerlaufs.

Richtlinien zum Implementieren der MiniportIdleNotification-Handlerfunktion finden Sie unter Implementieren einer MiniportIdleNotification-Handlerfunktion.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

MiniportCancelIdleNotification

NdisMIdleNotificationComplete