Vue d’ensemble de la suspension sélective NDIS

À compter de NDIS 6.30, l’interface de suspension sélective NDIS permet à NDIS de suspendre une carte réseau inactive en faisant passer l’adaptateur à un état de faible consommation. Cela permet au système de réduire la charge de processeur et d’alimentation de l’adaptateur.

La suspension sélective NDIS est particulièrement utile pour les cartes réseau basées sur l’interface USB v1.1 et v2.0. Ces adaptateurs sont continuellement interrogés pour les paquets reçus, qu’ils soient actifs ou inactifs. En suspendant les adaptateurs USB inactifs, la surcharge du processeur peut être réduite de 10 %.

La suspension sélective NDIS est basée sur la technologie de suspension sélective USB . Toutefois, la suspension sélective NDIS est conçue pour être indépendante du bus. De cette façon, les paquets de demandes d’E/S indépendants du bus (IRPs) pour la suspension sélective sont émis par NDIS. Cela rend le pilote miniport responsable de l’émission de tous les IRP requis pour la suspension sélective sur un bus spécifique. Par exemple, les pilotes miniport pour les cartes réseau USB émettent la demande d’inactivité USB spécifique au bus (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) au pilote de bus USB pendant une opération de suspension sélective.

NDIS et le pilote miniport participent à la suspension sélective NDIS de la manière suivante :

  1. Si un pilote miniport a inscrit sa prise en charge de la suspension sélective NDIS, NDIS surveille l’activité d’E/S de la carte réseau. L’activité d’E/S inclut les indications de réception des paquets, l’envoi d’achèvements de paquets et les requêtes OID qui sont gérées par le pilote miniport.

  2. NDIS considère la carte réseau comme inactive si elle est inactive depuis plus longtemps qu’une période d’inactivité spécifiée. Dans ce cas, NDIS démarre une opération de suspension sélective en émettant une notification d’inactivité au pilote miniport afin de faire passer la carte réseau à un état de faible consommation.

    Notes

    La durée du délai d’inactivité est spécifiée par la valeur du mot clé INF standardisé *SSIdleTimeout. Pour plus d’informations sur cette mot clé, consultez Mots clés INF standardisés pour la suspension sélective NDIS.  

    Pour plus d’informations sur la façon dont NDIS détermine qu’une carte réseau est inactive, consultez Comment NDIS détecte les cartes réseau inactives.

  3. NDIS envoie la notification d’inactivité au pilote miniport en appelant la fonction de gestionnaire MiniportIdleNotification du pilote. Lorsque cette fonction est appelée, le pilote miniport détermine si la carte réseau peut passer à un état de faible puissance. 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 IRP de demande d’inactivité USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) au pilote de bus USB sous-jacent. Cela informe le pilote de bus que la carte réseau est inactive et confirme si la carte peut être convertie à un état de faible consommation d’alimentation.

    Notes

    Le pilote miniport doit spécifier une routine de rappel et d’achèvement pour l’IRP de la demande d’inactivité USB.

    Pour plus d’informations sur la façon dont un pilote miniport gère une notification inactive, consultez Gestion de la notification d’inactivité de suspension sélective NDIS.

  4. Une fois que le pilote miniport a confirmé que la carte réseau peut passer à un état de faible consommation, il appelle NdisMIdleNotificationConfirm. Dans cet appel, le pilote miniport spécifie l’état d’alimentation le plus bas vers lequel la carte réseau peut effectuer la transition.

  5. Lorsque NdisMIdleNotificationConfirm est appelé, NDIS émet des demandes OID au pilote miniport pour préparer l’adaptateur pour la transition vers un état de faible consommation. NDIS émet également des irps au pilote de bus sous-jacent pour définir l’adaptateur à un état de faible consommation d’alimentation.

  6. Une fois la carte réseau suspendue, elle reste à faible consommation d’énergie jusqu’à ce que la notification d’inactivité en attente soit annulée.

    NDIS annule la notification d’inactivité en attente en appelant la fonction de gestionnaire MiniportCancelIdleNotification du pilote miniport . NDIS appelle cette fonction de gestionnaire si une ou plusieurs des conditions suivantes sont remplies :

    • NDIS détecte les demandes de paquets ou les requêtes OID envoyées au pilote miniport à partir de pilotes de protocole ou de filtres qui se superposent.

    • La carte réseau signale un événement de mise en éveil. Cela peut se produire lorsque l’adaptateur reçoit un paquet ou détecte une modification de sa connexion multimédia status.

    Une fois la carte réseau suspendue, le pilote miniport peut également terminer la notification d’inactivité afin de rétablir l’état d’alimentation de l’adaptateur. Les raisons de cette opération sont spécifiques à la conception et aux exigences du pilote et de l’adaptateur.

    Pour plus d’informations sur la façon dont NDIS annule la notification d’inactivité, consultez Annulation de la notification d’inactivité de suspension sélective NDIS.

    Pour plus d’informations sur la façon dont le pilote miniport termine la notification d’inactivité, consultez Fin de la notification de suspension sélective de l’inactivité NDIS.

  7. Lorsque la fonction de gestionnaire MiniportCancelIdleNotification est appelée, le pilote miniport détermine si la carte réseau peut reprendre un état d’alimentation totale. Le pilote annule également tous les IIP spécifiques au bus qu’il a pu émettre précédemment pour la notification d’inactivité.

    La détermination que la carte réseau peut passer à un état pleine puissance est spécifique au bus. Par exemple, lorsque MiniportCancelIdleNotification est appelé, le miniport USB doit annuler l’IRP de demande d’inactivité USB précédemment émise. Dès que le pilote USB a annulé l’IRP, il appelle la routine d’achèvement de l’IRP pour vérifier que l’IRP est annulé et que la carte réseau peut reprendre à un état d’alimentation totale. Dans le contexte de la routine d’achèvement, le pilote miniport appelle NdisMIdleNotificationComplete.

    Lorsque le miniport détermine que la carte réseau peut reprendre à un état plein régime, il appelle NdisMIdleNotificationComplete. Cet appel avertit NDIS que la notification d’inactivité a été terminée. NDIS effectue ensuite l’opération de suspension sélective en faisant passer la carte réseau à un état d’alimentation totale.

  8. Lorsque NdisMIdleNotificationComplete est appelé, NDIS envoie des requêtes OID au pilote miniport pour préparer l’adaptateur pour la transition vers un état d’alimentation totale. NDIS émet également des irps au pilote de bus sous-jacent pour définir l’adaptateur à un état d’alimentation totale.

  9. Lorsque la carte réseau reprend son état d’alimentation totale, l’opération de suspension sélective est terminée. NDIS reprend la surveillance de l’activité d’E/S de la carte réseau. Si la carte devient inactive après une autre période d’inactivité, NDIS envoie une notification d’inactivité au pilote miniport afin de suspendre la carte réseau.