Inscription des fonctions de gestionnaire de suspension sélective NDIS
Si un pilote miniport prend en charge la suspension sélective NDIS, NDIS avertit le pilote que la carte réseau sous-jacente est devenue inactive. Le pilote miniport doit fournir les fonctions suivantes pour gérer ces notifications inactives :
MiniportIdleNotification
NDIS appelle la fonction de gestionnaire MiniportIdleNotification pour avertir le pilote miniport que la carte réseau est devenue inactive. Le pilote miniport gère la notification d’inactivité en déterminant si la carte réseau peut passer à un état d’alimentation faible. Le pilote miniport effectue cette détermination d’une manière spécifique au bus.
Par exemple, un pilote miniport USB détermine si la carte réseau peut passer à un état d’alimentation faible en émettant un paquet de demande d’E/S (IRP) pour une demande d’inactivité USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) vers le pilote de bus USB sous-jacent. Grâce au traitement de cette IRP, le pilote miniport est averti que l’adaptateur est inactif et peut être passé à un état de faible consommation.
MiniportCancelIdleNotification
NDIS appelle la fonction de gestionnaire MiniportCancelIdleNotification pour annuler la notification d’inactivité en attente. Lorsque cette fonction est appelée, le pilote miniport annule tous les IIP spécifiques au bus qu’il a pu émettre précédemment pour la notification d’inactivité.
Par exemple, lorsque MiniportCancelIdleNotification est appelé, le miniport USB doit annuler l’IRP de demande d’inactivité USB précédemment émise. Lorsque l’IRP est annulé, le pilote miniport est averti que l’adaptateur peut maintenant être passé à un état d’alimentation totale.
Lorsque la fonction DriverEntry du pilote miniport est appelée, le pilote inscrit ses fonctions de gestionnaire de suspension sélective NDIS en procédant comme suit :
Le pilote miniport doit définir le membre SetOptionsHandler de la structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS sur le point d’entrée de la fonction MiniportSetOptions du pilote. Le pilote appelle NdisMRegisterMiniportDriver pour inscrire sa structure NDIS_MINIPORT_DRIVER_CHARACTERISTICS auprès de NDIS.
NDIS appelle la fonction MiniportSetOptions dans le contexte de l’appel à NdisMRegisterMiniportDriver.
Lorsque MiniportSetOptions est appelé, le pilote miniport initialise une structure NDIS_MINIPORT_SS_CHARACTERISTICS avec des pointeurs vers les fonctions de gestionnaire. Le pilote miniport appelle ensuite NdisSetOptionalHandlers et définit le paramètre OptionalHandlers sur un pointeur vers la structure NDIS_MINIPORT_SS_CHARACTERISTICS .
Pour plus d’informations sur la gestion des notifications inactives pour la suspension sélective NDIS, consultez Notifications d’inactivité de suspension sélective NDIS.