Registratie van NDIS Selective Suspend Handler-functies

Als een minipoortstuurprogramma NDIS selectief onderbreken ondersteunt, meldt NDIS het stuurprogramma dat de onderliggende netwerkadapter inactief is geworden. Het minipoortstuurprogramma moet de volgende functies bieden voor het afhandelen van deze niet-actieve meldingen:

MiniportIdleNotification
NDIS roept de MiniportIdleNotification handler-functie aan om het minipoortstuurprogramma op de hoogte te stellen dat de netwerkadapter inactief is geworden. Het minipoortstuurprogramma verwerkt de niet-actieve melding door te bepalen of de netwerkadapter kan overschakelen naar een lage energiestatus. De minipoortchauffeur voert deze bepaling op een busspecifieke manier uit.

Een USB-minipoortstuurprogramma bepaalt bijvoorbeeld of de netwerkadapter kan overschakelen naar een status met een laag vermogen door een I/O-aanvraagpakket (IRP) uit te geven voor een USB-aanvraag inactief (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) naar het onderliggende USB-busstuurprogramma. Door de verwerking van deze IRP wordt het minipoortstuurprogramma op de hoogte gesteld dat de adapter inactief is en kan worden overgezet naar een status met laag vermogen.

MiniportCancelIdleNotification
NDIS roept de MiniportCancelIdleNotification handler-functie aan om de openstaande niet-actieve melding te annuleren. Wanneer deze functie wordt aangeroepen, annuleert het minipoortstuurprogramma alle busspecifieke IRP's die het eerder heeft uitgegeven voor de inactieve melding.

Wanneer bijvoorbeeld MiniportCancelIdleNotification wordt aangeroepen, moet de USB-minipoort de eerder uitgegeven IRP voor inactieve USB-aanvragen annuleren. Wanneer de IRP is geannuleerd, ontvangt het minipoortstuurprogramma een melding dat de adapter nu kan worden overgezet naar een volledige energiestatus.

Wanneer de DriverEntry-functie van het miniportstuurprogramma wordt aangeroepen, registreert het stuurprogramma de NDIS selectieve handlerfuncties door de volgende stappen uit te voeren:

  1. Het minipoortstuurprogramma moet het lid SetOptionsHandler van de structuur NDIS_MINIPORT_DRIVER_CHARACTERISTICS instellen op het toegangspunt voor de MiniportSetOptions-functie van het stuurprogramma. Het stuurprogramma roept de functie NdisMRegisterMiniportDriver aan om zijn structuur NDIS_MINIPORT_DRIVER_CHARACTERISTICS bij NDIS te registreren.

  2. NDIS roept de MiniportSetOptions--functie aan in de context van de aanroep naar NdisMRegisterMiniportDriver.

    Wanneer MiniportSetOptions- wordt aangeroepen, initialiseert het minipoortstuurprogramma een NDIS_MINIPORT_SS_CHARACTERISTICS structuur met aanwijzers naar de handlerfuncties. Het minipoortstuurprogramma roept vervolgens NdisSetOptionalHandlers aan en stelt de parameter OptionalHandlers in op een aanwijzer naar de NDIS_MINIPORT_SS_CHARACTERISTICS-structuur.

Zie NDIS Selective Suspend-meldingenvoor meer informatie over het afhandelen van niet-actieve meldingen onder NDIS Selective Suspend.