Freigeben über


Verbesserte Sende- und Empfangspfade

Die Sende- und Empfangspfade von NDIS 6.0 wurden wie folgt verbessert, um die Leistung zu verbessern:

  • Alle Sende- und Empfangsfunktionen von NDIS 6.0 und höher können eine verknüpfte Liste von NET_BUFFER_LIST Strukturen und den zugehörigen NET_BUFFER Strukturen mit einem einzigen Funktionsaufruf übertragen. Diese Unterstützung für echte Multipacket-Sende- und Empfangsvorgänge reduziert die Anzahl der Funktionsaufrufe, die Treiber ausführen müssen, erheblich.

  • Beim Aufrufen einer Sende- oder Empfangsfunktion kann ein Treiber, der auf DISPATCH_LEVEL ausgeführt wird, seine IRQL zu NDIS angeben. Wenn NDIS anschließend andere Treiber im Stapel aufruft, ist es nicht erforderlich, dass diese Treiber den IRQL testen oder auf DISPATCH_LEVEL festlegen. Dadurch wird der Aufwand reduziert, der mit dem Testen und Festlegen des IRQL in kritischen Codeabschnitten verbunden ist.

  • Wenn Treiber Pakete nach oben und unten im Treiberstapel übergeben, können sie NDIS anfordern, um die NET_BUFFER Datenoffsets anzupassen, um Headerinformationen zu berücksichtigen. Beim Senden eines Pakets kann ein Treiber den verwendeten Datenbereich erweitern, um die Headerinformationen des Treibers zu berücksichtigen. Beim Angeben eines Empfangspakets kann ein Treiber den verwendeten Datenspeicherplatz verkleinern, nachdem der Treiber mit dem Zugriff auf seine Headerinformationen fertig ist. Diese Möglichkeit, den verwendeten Datenspeicherplatz in einer NET_BUFFER-Struktur dynamisch anzupassen, ohne Arbeitsspeicher zuzuweisen und freizugeben oder Daten zu kopieren, reduziert den Aufwand, der für die Verarbeitung von Netzwerkdaten erforderlich ist.

Weitere Informationen zur Verarbeitung von Sende- und Empfangsdaten in NDIS 6.0 finden Sie unter NET_BUFFER Architecture.