Freigeben über


Registrieren von NDIS-Handlerfunktionen für selektives Anhalten

Wenn ein Miniporttreiber das selektive Anhalten von NDIS unterstützt, benachrichtigt NDIS den Treiber darüber, dass der zugrunde liegende Netzwerkadapter im Leerlauf ist. Der Miniporttreiber muss die folgenden Funktionen bereitstellen, um diese Benachrichtigungen im Leerlauf zu verarbeiten:

MiniportIdleNotification
NDIS ruft die MiniportIdleNotification-Handlerfunktion auf, um den Miniporttreiber zu benachrichtigen, dass der Netzwerkadapter im Leerlauf ist. Der Miniporttreiber verarbeitet die Benachrichtigung im Leerlauf, indem er bestimmt, ob der Netzwerkadapter in einen Energiesparzustand wechseln kann. Der Miniporttreiber führt diese Bestimmung busspezifisch durch.

Beispielsweise bestimmt ein USB-Miniporttreiber, ob der Netzwerkadapter in einen Energiesparzustand wechseln kann, indem er ein E/A-Anforderungspaket (IRP) für eine USB-Leerlaufanforderung (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) an den zugrunde liegenden USB-Bustreiber ausgibt. Durch die Verarbeitung dieses IRP wird der Miniporttreiber benachrichtigt, dass sich der Adapter im Leerlauf befindet und in einen Energiesparzustand übergehen kann.

MiniportCancelIdleNotification
NDIS ruft die MiniportCancelIdleNotification-Handlerfunktion auf, um die ausstehende Leerlaufbenachrichtigung abzubrechen. Wenn diese Funktion aufgerufen wird, bricht der Miniporttreiber alle busspezifischen IRPs ab, die er möglicherweise zuvor für die Leerlaufbenachrichtigung ausgegeben hat.

Wenn beispielsweise MiniportCancelIdleNotification aufgerufen wird, muss der USB-Miniport die zuvor ausgestellte USB-Idle-Anforderungs-IRP abbrechen. Wenn das IRP abgebrochen wird, wird der Miniporttreiber benachrichtigt, dass der Adapter jetzt in den Zustand "Full-Power" übergehen kann.

Wenn die DriverEntry-Funktion des Miniporttreibers aufgerufen wird, registriert der Treiber seine NDIS-Funktionen für selektives Anhalten, indem er die folgenden Schritte ausführt:

  1. Der Miniporttreiber muss den SetOptionsHandler-Member der NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur auf den Einstiegspunkt für die MiniportSetOptions-Funktion des Treibers festlegen. Der Treiber ruft NdisMRegisterMiniportDriver auf, um seine NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur bei NDIS zu registrieren.

  2. NDIS ruft die MiniportSetOptions-Funktion im Kontext des Aufrufs von NdisMRegisterMiniportDriver auf.

    Wenn MiniportSetOptions aufgerufen wird, initialisiert der Miniporttreiber eine NDIS_MINIPORT_SS_CHARACTERISTICS-Struktur mit Zeigern auf die Handlerfunktionen. Der Miniporttreiber ruft dann NdisSetOptionalHandlers auf und legt den OptionalHandlers-Parameter auf einen Zeiger auf die NDIS_MINIPORT_SS_CHARACTERISTICS-Struktur fest.

Weitere Informationen zum Behandeln von Benachrichtigungen im Leerlauf für das selektive Anhalten von NDIS finden Sie unter NDIS Selective Suspend Benachrichtigungen im Leerlauf.