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 transférée vers un état de faible alimentation.
Syntaxe
MINIPORT_IDLE_NOTIFICATION MiniportIdleNotification;
NDIS_STATUS MiniportIdleNotification(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] BOOLEAN ForceIdle
)
{...}
Paramètres
[in] MiniportAdapterContext
Handle vers une zone de contexte allouée par le pilote miniport 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 de veto à la notification d’inactivité et doit continuer avec la transition d’état à faible alimentation.
Pour plus d’informations sur le paramètre ForceIdle, consultez la section Notes.
Valeur de retour
MiniportIdleNotification retourne l’une des valeurs d’état suivantes :
Retourner le code | Description |
---|---|
NDIS_STATUS_PENDING | Le pilote miniport a réussi à gérer la notification inactive. La notification est laissée dans un état en attente jusqu’à ce que le pilote miniport appelle NdisMIdleNotificationComplete. Remarque : Le pilote miniport ne doit pas retourner NDIS_STATUS_SUCCESS de MiniportIdleNotification. |
NDIS_STATUS_BUSY | Le pilote miniport a annulé la notification d’inactivité, car la carte réseau est toujours utilisée. Remarque :MiniportIdleNotification ne doit pas retourner ce code d’état si le paramètre ForceIdle est défini sur TRUE. |
NDIS_STATUS_FAILURE | Le pilote miniport n’a pas pu émettre un IRP spécifique au bus avec succès. |
Remarques
La fonction de gestionnaire MiniportIdleNotification est requise pour les pilotes miniport 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 d’interruption 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 a été inactive depuis plus longtemps que le délai d’inactivité. Par conséquent, NDIS suspend de manière sélective 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 ce mot clé, consultez mots clés INF standardisés pour la suspension sélective NDIS.
Note
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 secours connecté.
Si le pilote miniport détermine que la carte réseau est utilisée, elle peut refuser la demande de notification inactive en retournant NDIS_STATUS_BUSY. Cela entraîne le redémarrage du moniteur d’activité sur la carte réseau.
Si l’adaptateur devient à nouveau inactif au cours du délai d’attente inactif, NDIS appelle MiniportIdleNotification.
Note
Le pilote miniport ne doit pas retourner NDIS_STATUS_BUSY si le paramètre ForceIdle est défini sur 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 inactive 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, tel que la réception d’un paquet qui correspond à un modèle WOL (Wake-on-LAN) ou la détection d’une modification de son état de connexion multimédia.
NDIS annule la notification inactive en appelant MiniportCancelIdleNotification. Lorsque cette fonction de gestionnaire est appelée, le pilote miniport annule les irps spécifiques au bus qu’il a pu émettre précédemment pour la notification inactive. Enfin, le pilote miniport appelle NdisMIdleNotificationComplete pour terminer la notification inactive.
Une fois que la carte réseau est dans un état à faible alimentation, le pilote miniport peut terminer la notification d’inactivité elle-même afin de reprendre l’adaptateur à un état d’alimentation complète. 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 inactive 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 d’interruption sélective NDIS.
Pour plus d’informations sur la gestion des notifications inactives pour la suspension sélective NDIS, consultez Gestion de la notification d’inactivité de suspension sélective NDIS.
Pour obtenir des instructions sur la façon d’implémenter la fonction de gestionnaire MiniportIdleNotification, consultez Implémentation d’une fonction de gestionnaire MiniportIdleNotification.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.30 et versions ultérieures. |
plateforme cible | Windows |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | PASSIVE_LEVEL |