Freigeben über


Senden von Paketen von einem CoNDIS WAN Miniport-Treiber

Ein Treiber der oberen Ebene ruft NdisCoSendNetBufferLists auf, um Netzwerkdatenpakete an einen zugrunde liegenden CoNDIS-WAN-Miniporttreiber in einer Liste von NET_BUFFER_LIST Strukturen zu senden. Der NDISWAN-Zwischentreiber leitet diese NET_BUFFER_LIST Strukturen vom Oberschichttreiber weiter. NDISWAN packt die Strukturen neu, bevor sie gesendet werden. NDISWAN leitet Pakete in neuen NET_BUFFER_LIST Strukturen weiter.

Der NDISWAN-Zwischentreiber ruft NDIS auf, um die neuen NET_BUFFER_LIST Strukturen weiterzuleiten, NDIS ruft die Miniport-Treiberfunktion MiniportCoSendNetBufferLists des WAN-Miniporttreibers auf.

Der CoNDIS-WAN-Miniporttreiber besitzt sowohl die NET_BUFFER_LIST Strukturen als auch die zugehörigen Daten, bis die Übermittlung abgeschlossen ist. Der Miniporttreiber muss später NdisMSendNetBufferListsComplete aufrufen, um die Sendeanforderung abzuschließen.

Ein Abschlussaufruf weist nicht unbedingt darauf hin, dass die Netzwerkdaten übertragen wurden; mit Ausnahme intelligenter NICs wurden die Netzwerkdaten in der Regel übertragen. Ein Abschlussaufruf gibt jedoch an, dass der Miniporttreiber bereit ist, den Besitz der NET_BUFFER_LIST Strukturen freizugeben.

Nachdem der CoNDIS-WAN-Miniporttreiber NET_BUFFER_LIST Struktur empfängt, die ein Netzwerkdatenpaket enthält, sollte es das Paket an eine aktive virtuelle Verbindung (VC) senden.

Ein CoNDIS-WAN-Miniporttreiber gibt die Anzahl der ausstehenden Pakete an, die pro VC im MaxSendWindow-Element der NDIS_WAN_CO_INFO-Struktur vorhanden sein können. Der Miniporttreiber stellt diese Struktur bereit, wenn der Miniporttreiber auf die OID_WAN_CO_GET_INFO Anforderung des Protokolltreibers reagiert. Der Miniporttreiber kann diese Zahl jedoch dynamisch und pro VC mithilfe des SendWindow-Elements in der WAN_CO_LINKPARAMS-Struktur anpassen. Der Miniporttreiber übergibt diese Struktur an die NdisMCoIndicateStatusEx-Funktion. NDISWAN verwendet den aktuellen SendWindow-Wert als Grenzwert für ausstehende Sendesendungen. Der Miniporttreiber kann den Wert des SendWindow-Elements auf Null festlegen, um anzugeben, dass er keine ausstehenden Pakete verarbeiten kann. Wenn das SendWindow-Element auf Null festgelegt ist, wird das Sendefenster heruntergefahren, und NDISWAN beendet das Senden von Paketen für die jeweilige VC.

Pakete, die ein WAN-Miniporttreiber sendet, enthalten einfache HDLC PPP-Framing, wenn PPP-Framing festgelegt ist. Für SLIP- oder RAS-Rahmen enthalten Pakete nur den Datenteil ohne Rahmen. Weitere Informationen zum WAN-Paketrahmen finden Sie unter WAN Packet Framing.

Ein WAN-Miniporttreiber darf nicht versuchen, Software-Loopback oder promiscuous-Mode-Loopback bereitzustellen. Beide Loopbacktypen werden vom NDISWAN-Treiber vollständig unterstützt.