Suspension d’un adaptateur
NDIS appelle la fonction MiniportPause d’un pilote miniport pour lancer une opération de pause. L’adaptateur reste à l’état de suspension jusqu’à ce que l’opération de pause soit terminée.
Dans l’état de suspension, le pilote miniport doit effectuer les opérations de réception en attente. Le pilote doit également effectuer toutes les opérations d’envoi en attente et il doit rejeter toute nouvelle demande d’envoi.
Pour terminer les opérations de réception, le pilote attend que tous les appels à la fonction NdisMIndicateReceiveNetBufferLists retournent et NDIS doit retourner toutes les structures de NET_BUFFER_LIST en suspens à la fonction MiniportReturnNetBufferLists du pilote miniport.
Pour effectuer les opérations d’envoi en attente, le pilote miniport doit appeler la fonction NdisMSendNetBufferListsComplete pour toutes les structures de NET_BUFFER_LIST en attente. Le pilote doit rejeter immédiatement toute nouvelle demande d’envoi à sa fonction MiniportSendNetBufferLists .
Une fois qu’un pilote miniport a effectué toutes les opérations d’envoi et de réception en attente, le pilote doit terminer la demande de pause de manière synchrone ou asynchrone. Si l’opération de pause est terminée de manière asynchrone, le pilote appelle NdisMPauseComplete pour terminer la demande de pause. Une fois la demande de pause terminée, le pilote miniport est à l’état Suspendu.
NDIS ne lance pas d’autres opérations de Plug-and-Play, telles que les opérations d’arrêt, d’initialisation, de changement d’alimentation ou de redémarrage, alors que le pilote miniport est à l’état de suspension. NDIS peut lancer ces opérations de Plug-and-Play une fois qu’un pilote miniport est à l’état Suspendu.