Condividi tramite


Invio di pacchetti da un driver Miniport della rete WAN CoNDIS

Un driver di livello superiore chiama NdisCoSendNetBufferLists per inviare pacchetti di dati di rete a un driver miniport della rete WAN CoNDIS sottostante in un elenco di strutture NET_BUFFER_LIST . Il driver intermedio NDISWAN inoltra tali strutture NET_BUFFER_LIST dal driver di livello superiore. NDISWAN riconfeziona le strutture prima di inviarle. NDISWAN inoltra i pacchetti nelle nuove strutture di NET_BUFFER_LIST.

Il driver intermedio NDISWAN chiama NDIS per inoltrare le nuove strutture NET_BUFFER_LIST, NDIS chiama la funzione MiniportCoSendNetBufferLists del driver WAN miniport.

Il driver miniport della rete WAN CoNDIS possiede sia le strutture NET_BUFFER_LIST che i dati associati fino al completamento dell'invio. Il driver miniport deve chiamare successivamente NdisMSendNetBufferListsComplete per completare la richiesta di invio.

Una chiamata di completamento non indica necessariamente che i dati di rete sono stati trasmessi; tuttavia, ad eccezione delle schede di interfaccia di rete intelligenti, i dati di rete in genere sono stati trasmessi. Una chiamata di completamento indica tuttavia che il driver miniport è pronto a rilasciare la proprietà delle strutture NET_BUFFER_LIST.

Dopo che il driver miniport della rete WAN CoNDIS riceve NET_BUFFER_LIST struttura che contiene un pacchetto di dati di rete, deve inviare il pacchetto in una connessione virtuale attiva (VC).

Un driver miniport della rete WAN CoNDIS specifica il numero di pacchetti in sospeso che può avere per VC nel membro MaxSendWindow della struttura NDIS_WAN_CO_INFO. Il driver miniport fornisce questa struttura quando il driver miniport risponde alla richiesta di OID_WAN_CO_GET_INFO dal driver di protocollo. Tuttavia, il driver miniport può regolare questo numero in modo dinamico e in base al vc usando il membro SendWindow nella struttura WAN_CO_LINKPARAMS . Il driver miniport passa questa struttura alla funzione NdisMCoIndicateStatusEx. NDISWAN usa il valore SendWindow corrente come limite per gli invii in sospeso. Il driver miniport può impostare il valore del membro SendWindow su zero per specificare che non può gestire alcun pacchetto in sospeso. Ovvero, se il membro SendWindow è impostato su zero, la finestra di invio viene arrestata e NDISWAN interrompe l'invio di pacchetti per il particolare vco.

I pacchetti inviati da un driver miniport WAN contengono semplici frame HDLC PPP se è impostato il frame PPP. Per il frame SLIP o RAS, i pacchetti contengono solo la porzione di dati senza frame. Per altre informazioni sul frame di pacchetti WAN, vedere Frame di pacchetti WAN.

Un driver miniport WAN non deve tentare di fornire loopback software o loopback in modalità promiscua. Entrambi questi tipi di loopback sono completamente supportati dal driver NDISWAN.