Übertragen von Netzwerkdaten über einen Zwischentreiber
Wie unter Registrieren eines Zwischentreibers als Miniporttreiber erläutert, muss ein Zwischentreiber eine MiniportSendNetBufferLists-Funktion bereitstellen, wenn er sich bei NdisMRegisterMiniportDriver registriert. Die MiniportSendNetBufferLists-Funktion kann eingehende NET_BUFFER_LIST-Strukturen weiterleiten, indem sie NdisSendNetBufferLists aufruft , wenn der Treiber über einen verbindungslosen unteren Rand verfügt. MiniportSendNetBufferLists kann die Liste der NET_BUFFER_LIST Strukturen senden, die es mit NdisSendNetBufferLists empfängt , ohne die Funktionen des zugrunde liegenden Miniporttreibers zu berücksichtigen.
MiniportSendNetBufferLists empfängt eine Liste von NET_BUFFER_LIST Strukturen, die in einer Reihenfolge angeordnet sind, die von einem überstehenden Aufrufer von NdisSendNetBufferLists bestimmt wird. In den meisten Fällen sollte der Zwischentreiber diese Reihenfolge beibehalten, da er ein eingehendes Array von NET_BUFFER_LIST Strukturen an den zugrunde liegenden Miniporttreiber übergibt. Ein Zwischentreiber, der Daten in Netzwerkdaten ändert, bevor er sie an den zugrunde liegenden Treiber weitergibt, kann eine Liste neu anordnen.
NDIS behält immer die Reihenfolge von NET_BUFFER_LIST Strukturzeigern bei, die als verknüpfte Liste mit NdisSendNetBufferLists übergeben werden. Der zugrunde liegende Miniporttreiber geht auch davon aus, dass die an die MiniportSendNetBufferLists-Funktion übergebene Liste impliziert, dass die Netzwerkdaten in derselben Reihenfolge übertragen werden sollten.