Envoi de paquets à partir d’un pilote Miniport CoNDIS WAN
Un pilote de couche supérieure appelle NdisCoSendNetBufferLists pour envoyer des paquets de données réseau à un pilote miniport CoNDIS WAN sous-jacent dans une liste de structures NET_BUFFER_LIST. Le pilote intermédiaire NDISWAN transfère ces structures NET_BUFFER_LIST à partir du pilote de couche supérieure. NDISWAN repackage les structures avant de les envoyer. NDISWAN transfère les paquets dans les nouvelles structures de NET_BUFFER_LIST.
Le pilote intermédiaire NDISWAN appelle NDIS pour transférer les nouvelles structures NET_BUFFER_LIST, NDIS appelle la fonction MiniportCoSendNetBufferLists du pilote miniport WAN.
Le pilote miniport CoNDIS WAN possède à la fois les structures NET_BUFFER_LIST et les données associées jusqu’à la fin de l’envoi. Le pilote miniport doit appeler ultérieurement NdisMSendNetBufferListsComplete pour terminer la demande d’envoi.
Un appel d’achèvement n’indique pas nécessairement que les données réseau ont été transmises ; toutefois, à l’exception des cartes réseau intelligentes, les données réseau ont généralement été transmises. Toutefois, un appel d’achèvement indique que le pilote miniport est prêt à libérer la propriété des structures NET_BUFFER_LIST.
Une fois que le pilote miniport CoNDIS WAN reçoit NET_BUFFER_LIST structure qui contient un paquet de données réseau, il doit envoyer le paquet sur une connexion virtuelle active (VC).
Un pilote miniport CoNDIS WAN spécifie le nombre de paquets en attente qu’il peut avoir par vc dans le membre MaxSendWindow de la structure NDIS_WAN_CO_INFO. Le pilote miniport fournit cette structure lorsque le pilote miniport répond à la demande de OID_WAN_CO_GET_INFO du pilote de protocole. Toutefois, le pilote miniport peut ajuster ce nombre de manière dynamique et par vc à l’aide du membre SendWindow dans la structure WAN_CO_LINKPARAMS . Le pilote miniport transmet cette structure à la fonction NdisMCoIndicateStatusEx. NDISWAN utilise la valeur SendWindow actuelle comme limite d’envois en attente. Le pilote miniport peut définir la valeur du membre SendWindow sur zéro pour spécifier qu’il ne peut pas gérer les paquets en attente. Autrement dit, si le membre SendWindow a la valeur zéro, la fenêtre d’envoi est arrêtée et NDISWAN arrête l’envoi de paquets pour le vc particulier.
Les paquets qu’un pilote miniport WAN envoie contiennent un cadre PPP HDLC simple si le cadrage PPP est défini. Pour le cadrage SLIP ou RAS, les paquets contiennent uniquement la partie données sans encadrage. Pour plus d’informations sur le trame de paquets WAN, consultez Le framework de paquets WAN.
Un pilote miniport WAN ne doit pas tenter de fournir une bouclage logicielle ou une bouclage en mode promiscuous. Ces deux types de bouclage sont entièrement pris en charge par le pilote NDISWAN.