MINIPORT_IDLE_NOTIFICATION fonction de rappel (ndis.h)
NDIS appelle la fonction de gestionnaire MiniportIdleNotification pour démarrer l’opération de suspension sélective NDIS sur une carte réseau inactive. Grâce à cette opération, la carte réseau est suspendue et passée à un état de faible consommation.
Syntaxe
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
Paramètres
[in] MiniportAdapterContext
Handle à une zone de contexte que le pilote miniport a allouée dans sa fonction MiniportInitializeEx . Le pilote miniport utilise cette zone de contexte pour conserver les informations d’état d’une carte réseau.
[in] ForceIdle
Valeur BOOLEAN qui, lorsqu’elle est définie sur TRUE, spécifie que le pilote miniport ne doit pas opposer son veto à la notification d’inactivité et doit poursuivre la transition de l’état de faible consommation.
Pour plus d’informations sur le paramètre ForceIdle , consultez la section Remarques.
Valeur retournée
MiniportIdleNotification retourne l’une des valeurs status suivantes :
Code de retour | Description |
---|---|
NDIS_STATUS_PENDING | Le pilote miniport a correctement géré la notification d’inactivité. La notification reste en attente jusqu’à ce que le pilote miniport appelle NdisMIdleNotificationComplete. Note: Le pilote miniport ne doit pas retourner NDIS_STATUS_SUCCESS à partir de MiniportIdleNotification. |
NDIS_STATUS_BUSY | Le pilote miniport a opposé son veto à la notification d’inactivité, car la carte réseau est toujours utilisée. Remarque :MiniportIdleNotification ne doit pas renvoyer ce code status si le paramètre ForceIdle a la valeur TRUE. |
NDIS_STATUS_FAILURE | Le pilote miniport n’a pas pu émettre une IRP spécifique au bus avec succès. |
Remarques
La fonction de gestionnaire MiniportIdleNotification est requise pour les pilotes miniports qui prennent en charge l’interface de suspension sélective NDIS. Pour plus d’informations sur la façon dont le pilote inscrit ses fonctions de gestionnaire de suspension sélective, consultez Inscription des fonctions de gestionnaire de suspension sélective NDIS.
NDIS définit le paramètre ForceIdle sur FALSE lorsque la carte réseau est inactive depuis plus longtemps que le délai d’inactivité. Par conséquent, NDIS suspend sélectivement uniquement la carte réseau.
La durée du délai d’inactivité est spécifiée par la valeur du mot clé INF *SSIdleTimeout. Pour plus d’informations sur cette mot clé, consultez Mots clés INF standardisés pour la suspension sélective NDIS.
Notes
NDIS définit le paramètre ForceIdle sur TRUE uniquement lorsqu’un système conforme à la technologie Always On Always Connected (AOAC) passe à un état de veille connectée.
Si le pilote miniport détermine que la carte réseau est utilisée, il peut opposer son veto à la demande de notification inactive en retournant NDIS_STATUS_BUSY. Cela entraîne le redémarrage de NDIS de l’analyse de l’activité sur la carte réseau.
Si l’adaptateur redevient inactif pendant la période d’inactivité, NDIS appelle MiniportIdleNotification.
Notes
Le pilote miniport ne doit pas retourner NDIS_STATUS_BUSY si le paramètre ForceIdle a la valeur TRUE.
Une fois la notification inactive émise, elle peut être annulée et terminée de la manière suivante :
NDIS peut annuler la notification d’inactivité en attente si les conditions suivantes sont remplies :
- Un protocole ou un pilote de filtre excessive émet une demande de paquet d’envoi ou une requête OID au pilote miniport.
- L’adaptateur sous-jacent signale un événement de mise en éveil, comme la réception d’un paquet qui correspond à un modèle WOL (Wake-on-LAN) ou la détection d’une modification de sa connexion multimédia status.
NDIS annule la notification inactive en appelant MiniportCancelIdleNotification. Lorsque cette fonction de gestionnaire 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é. Enfin, le pilote miniport appelle NdisMIdleNotificationComplete pour terminer la notification d’inactivité.
Une fois que la carte réseau est à faible consommation d’énergie, le pilote miniport peut effectuer lui-même la notification d’inactivité afin de rétablir l’état d’alimentation totale de l’adaptateur. Les raisons de cette opération sont spécifiques à la conception et aux exigences du pilote et de l’adaptateur.
Le pilote miniport termine la notification d’inactivité en appelant NdisMIdleNotificationComplete. 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.
Pour plus d’informations sur la gestion des notifications d’inactivité pour la suspension sélective NDIS, consultez Gestion de la notification d’inactivité de suspension sélective NDIS.
Pour obtenir des instructions sur l’implémentation de la fonction de gestionnaire MiniportIdleNotification , consultez Implémentation d’une fonction de gestionnaire MiniportIdleNotification.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.30 et versions ultérieures. |
Plateforme cible | Windows |
En-tête | ndis.h (inclure Ndis.h) |
IRQL | PASSIVE_LEVEL |