États de l’adaptateur d’un pilote Miniport

Pour chaque adaptateur miniport qu’il gère, un pilote de miniport NDIS doit prendre en charge l’ensemble d’états opérationnels suivant :

  • Arrêté

  • Éteindre

  • Initialisation

  • Suspendu

  • Redémarrage

  • En cours d’exécution

  • Suspension en cours

La figure suivante montre les interdépendances entre ces états.

Diagramme montrant les interdépendances entre les états opérationnels d’un pilote de miniport NDIS.

Note L’opération de réinitialisation n’affecte pas les états opérationnels de l’adaptateur miniport. En outre, l’état de l’adaptateur peut changer pendant qu’une opération de réinitialisation est en cours. Par exemple, NDIS peut appeler le gestionnaire de pause d’un pilote lorsqu’une opération de réinitialisation est en cours. Dans ce cas, le pilote peut effectuer l’opération de réinitialisation ou de pause dans n’importe quel ordre tout en respectant les exigences normales pour chaque opération. Pour une opération de réinitialisation, le pilote peut échouer la transmission des paquets de requête ou peut les maintenir en file d’attente et les terminer ultérieurement. Toutefois, vous devez noter qu’un pilote qui se superpose ne peut pas effectuer une opération de pause pendant que ses paquets de transmission sont en attente.

Les éléments suivants définissent les états de l’adaptateur :

Arrêté est l’état initial de tous les adaptateurs miniport. Lorsqu’un adaptateur miniport est à l’état Arrêté et que NDIS appelle la fonction MiniportInitializeEx du pilote pour initialiser l’adaptateur miniport, l’adaptateur miniport passe à l’état Initialisation. Si MiniportInitializeEx échoue, l’adaptateur miniport revient à l’état Arrêté. Lorsque l’adaptateur miniport est à l’état Suspendu et que NDIS appelle la fonction MiniportHaltEx , l’adaptateur miniport revient à l’état Arrêté.

Un adaptateur miniport à l’état Arrêt ne peut pas être utilisé tant que le système n’est pas arrêté et redémarré. Lorsque l’adaptateur miniport se trouve dans l’état Paused, Restarting, Running ou Pausing et que NDIS appelle la fonction MiniportShutdownEx du pilote miniport, l’adaptateur miniport passe à l’état Arrêt.

Dans l’état Initialisation , un pilote miniport effectue toutes les opérations requises pour initialiser un adaptateur miniport. Lorsqu’un adaptateur miniport est à l’état Arrêté et que le NDIS appelle la fonction MiniportInitializeEx du pilote miniport, l’adaptateur miniport passe à l’état Initialisation. Si MiniportInitializeEx réussit, l’adaptateur miniport passe à l’état Suspendu. Si MiniportInitializeEx échoue, l’adaptateur miniport revient à l’état Arrêté.

Lorsqu’un adaptateur miniport est à l’état Suspendu , un pilote miniport n’indique pas les données réseau reçues ou n’accepte pas les demandes d’envoi. Lorsqu’un adaptateur miniport est à l’état de suspension et que l’opération de pause est terminée, l’adaptateur miniport passe à l’état Suspendu. Lorsqu’un adaptateur miniport est dans l’état Initialisation et que MiniportInitializeEx réussit, l’adaptateur miniport passe à l’état Suspendu. Lorsque NDIS appelle la fonction MiniportRestart du pilote miniport, l’adaptateur miniport passe de l’état Suspendu à l’état Redémarrage. Lorsque NDIS appelle la fonction MiniportHaltEx du pilote miniport, l’adaptateur miniport passe de l’état Suspendu à l’état Arrêté.

Dans l’état Redémarrage , un pilote miniport effectue toutes les opérations requises pour redémarrer les opérations d’envoi et de réception d’un adaptateur miniport. Lorsqu’un adaptateur miniport est à l’état Suspendu et que NDIS appelle la fonction MiniportRestart du pilote, l’adaptateur miniport passe à l’état Redémarrage. Si le redémarrage échoue, l’adaptateur miniport revient à l’état Suspendu. Si le redémarrage réussit, l’adaptateur miniport passe à l’état En cours d’exécution.

Dans l’état En cours d’exécution , un pilote miniport effectue un traitement d’envoi et de réception normal pour un adaptateur miniport. Lorsque l’adaptateur miniport est à l’état Redémarrage et que le pilote est prêt à effectuer des opérations d’envoi et de réception, l’adaptateur miniport passe à l’état En cours d’exécution.

Dans l’état de suspension , un pilote miniport effectue toutes les opérations nécessaires pour arrêter les opérations d’envoi et de réception d’un adaptateur miniport. Le pilote doit attendre que NDIS retourne toutes les indications de réception en suspens. Lorsqu’un adaptateur miniport est à l’état En cours d’exécution et que NDIS appelle la fonction MiniportPause du pilote, l’adaptateur miniport passe à l’état de suspension. Un pilote miniport ne peut pas échouer une opération de pause. Une fois l’opération de pause terminée, l’adaptateur miniport passe à l’état Suspendu.

Gestion de la pile des pilotes

Pilotes miniport NDIS