MINIPORT_IDLE_NOTIFICATION Rückruffunktion (ndis.h)
NDIS ruft die MiniportIdleNotification-Handlerfunktion auf, um den selektiven NDIS-Anhaltevorgang auf einem Leerlauf-Netzwerkadapter zu starten. Durch diesen Vorgang wird der Netzwerkadapter angehalten und in einen Energiesparzustand umgestellt.
Syntax
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
Parameter
[in] MiniportAdapterContext
Ein Handle zu einem Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx--Funktion zugewiesen hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Netzwerkadapter beizubehalten.
[in] ForceIdle
Ein BOOLESCHER Wert, der bei Festlegung auf TRUEangibt, dass der Miniporttreiber die Leerlaufbenachrichtigung nicht vetoieren darf und mit dem Übergangszustand mit niedriger Leistung fortfahren muss.
Weitere Informationen zum parameter ForceIdle finden Sie im Abschnitt "Hinweise".
Rückgabewert
MiniportIdleNotification gibt einen der folgenden Statuswerte 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 NdisMIdleNotificationCompleteaufruft. Hinweis: Der Miniporttreiber darf NDIS_STATUS_SUCCESS nicht von MiniportIdleNotificationzurückgeben. |
NDIS_STATUS_BUSY | Der Miniporttreiber hat die Leerlaufbenachrichtigung vetoiert, da der Netzwerkadapter weiterhin verwendet wird. Hinweis:MiniportIdleNotification darf diesen Statuscode nicht zurückgeben, wenn der ForceIdle Parameter auf TRUEfestgelegt ist. |
NDIS_STATUS_FAILURE | Der Miniporttreiber konnte keinen busspezifischen IRP erfolgreich ausstellen. |
Bemerkungen
Die MiniportIdleNotification Handlerfunktion ist für Miniporttreiber erforderlich, die die selektive NDIS-Anhalteschnittstelle unterstützen. Weitere Informationen dazu, wie der Treiber seine selektiven Anhaltehandlerfunktionen registriert, finden Sie unter Registrieren von NDIS-Funktionen für selektive Anhaltehandlerfunktionen.
NDIS legt den parameter ForceIdle auf FALSE- fest, wenn der Netzwerkadapter länger als der Leerlaufzeit inaktiv war. Daher NDIS selektiv nur den Netzwerkadapter angehalten.
Die Dauer des Leerlaufzeitpunkts wird durch den Wert des Schlüsselworts *SSIdleTimeout INF angegeben. Weitere Informationen zu diesem Schlüsselwort finden Sie unter Standardisierte INF-Schlüsselwörter für NDIS Selektives Anhalten.
Anmerkung
NDIS legt den parameter ForceIdle auf TRUE nur fest, wenn ein System, das mit der Always On Always Connected (AOAC)-Technologie kompatibel ist, in einen verbundenen Standbyzustand wechselt.
Wenn der Miniporttreiber feststellt, dass der Netzwerkadapter verwendet wird, kann er die Idle-Benachrichtigungsanforderung veto machen, indem NDIS_STATUS_BUSY zurückgegeben wird. Dies bewirkt, dass NDIS den Monitor der Aktivität auf dem Netzwerkadapter neu startet.
Wenn der Adapter innerhalb des Leerlaufzeitzeitraums wieder inaktiv wird, ruft NDIS MiniportIdleNotificationauf.
Anmerkung
Der Miniporttreiber darf NDIS_STATUS_BUSY nicht zurückgeben, wenn der parameter ForceIdle auf TRUEfestgelegt ist.
Nachdem die Leerlaufbenachrichtigung ausgestellt wurde, kann sie wie folgt abgebrochen und abgeschlossen werden:
NDIS kann die ausstehende Leerlaufbenachrichtigung abbrechen, wenn die folgenden Bedingungen erfüllt sind:
- Ein Überlaufprotokoll oder Filtertreiber gibt entweder eine Sendepaketanforderung oder eine OID-Anforderung an den Miniporttreiber aus.
- Der zugrunde liegende Adapter signalisiert ein Wake-up-Ereignis, z. B. das Empfangen eines Pakets, das einem Wake-on-LAN (WOL)-Muster entspricht, oder erkennt eine Änderung des Medienverbindungsstatus.
NDIS bricht die Leerlaufbenachrichtigung ab, indem MiniportCancelIdleNotificationaufgerufen wird. Wenn diese Handlerfunktion aufgerufen wird, bricht der Miniporttreiber alle busspezifischen IRPs ab, die er zuvor für die Leerlaufbenachrichtigung ausgestellt 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 Leerlaufbenachrichtigung selbst abschließen, um den Adapter in einen Vollbetriebszustand fortzusetzen. Die Gründe dafür sind spezifisch für das Design und die Anforderungen des Treibers und Adapters.
Der Miniporttreiber schließt die Leerlaufbenachrichtigung ab, indem NdisMIdleNotificationCompleteaufgerufen wird. Weitere Informationen dazu, wie der Miniporttreiber die Leerlaufbenachrichtigung abschließt, finden Sie unter Abschließen der NDIS-Benachrichtigung für das selektive Anhalten des Leerlaufs.
Weitere Informationen zum Behandeln von Leerlaufbenachrichtigungen für das selektive Anhalten von NDIS finden Sie unter Behandlung der NDIS-Benachrichtigung für selektives Anhalten.
Richtlinien zum Implementieren der MiniportIdleNotification Handlerfunktion finden Sie unter Implementieren einer MiniportIdleNotification-Handlerfunktion.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.30 und höher. |
Zielplattform- | Fenster |
Header- | ndis.h (include Ndis.h) |
IRQL- | PASSIVE_LEVEL |