Freigeben über


NdisMSendNetBufferListsComplete-Funktion (ndis.h)

Miniport-Treiber rufen die NdisMSendNetBufferListsComplete--Funktion auf, um eine verknüpfte Liste von NET_BUFFER_LIST Strukturen an einen überfälligen Treiber zurückzugeben und den endgültigen Status einer Sendeanforderung zurückzugeben.

Syntax

void NdisMSendNetBufferListsComplete(
  [in] NDIS_HANDLE      MiniportAdapterHandle,
       PNET_BUFFER_LIST NetBufferList,
  [in] ULONG            SendCompleteFlags
);

Parameter

[in] MiniportAdapterHandle

Der Miniportpunkt, den NDIS an die MiniportInitializeEx--Funktion übergeben hat.

NetBufferList

Ein Zeiger auf eine verknüpfte Liste von NET_BUFFER_LIST Strukturen. Der Miniporttreiber hat die NET_BUFFER_LIST Strukturen in vorherigen Aufrufen der MiniportSendNetBufferLists-Funktion empfangen.

[in] SendCompleteFlags

NDIS-Flags, die mit einem OR-Vorgang kombiniert werden können. Um alle Flags zu löschen, legen Sie dieses Element auf Null fest. Diese Funktion unterstützt die NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL Kennzeichnung, die; wenn festgelegt, gibt an, dass die aktuelle IRQL DISPATCH_LEVEL ist. Weitere Informationen zu diesem Kennzeichen finden Sie unter IRQL Tracking.

Rückgabewert

Nichts

Bemerkungen

Ein Miniporttreiber ruft NdisMSendNetBufferListsComplete- zum Abschließen von Sendeanforderungen auf, die NDIS an die MiniportSendNetBufferLists Funktion des Treibers vorgenommen hat. Der Miniporttreiber gibt eine verknüpfte Liste der NET_BUFFER_LIST Strukturen an, die den abgeschlossenen Sendeanforderungen zugeordnet sind. Während der Status der Sendeanforderungen aussteht, behält der Miniporttreiber den Besitz der NET_BUFFER_LIST Strukturen und alle protokollverteilten Ressourcen, die den NET_BUFFER_LIST Strukturen zugeordnet sind.

Nachdem ein Miniporttreiber NdisMSendNetBufferListsCompleteaufruft, ruft NDIS die ProtocolSendNetBufferListsComplete--Funktion des Treibers auf, der die NdisSendNetBufferLists- funktion aufgerufen hat, um die Sendeanforderung zu initiieren.

Der Miniporttreiber kann Sendeanforderungen in beliebiger Reihenfolge abschließen. Beispielsweise könnte der Miniporttreiber die NET_BUFFER_LIST Strukturlisten aus mehreren MiniportSendNetBufferLists Aufrufen verketten oder eine Liste aus einer MiniportSendNetBufferLists Aufruf aufteilen. Der Miniporttreiber darf jedoch nicht die Liste der NET_BUFFER Strukturen ändern, die einer NET_BUFFER_LIST Struktur zugeordnet sind.

Der Miniporttreiber muss einen der folgenden Statuscodes im Status Member jeder NET_BUFFER_LIST Struktur festlegen, die der NetBufferLists-parameter angibt:

Struktur Beschreibung
NDIS_STATUS_SUCCESS Alle Netzwerkdaten, die die NET_BUFFER_LIST Struktur und die zugehörigen NET_BUFFER Strukturen beschreiben, wurden erfolgreich für die Übertragung verarbeitet. Beispielsweise hat der Miniporttreiber die Daten in eine Warteschlange kopiert, oder die Daten wurden bereits übertragen.
NDIS_STATUS_INVALID_LENGTH Die Größe der Daten in einigen NET_BUFFER Strukturen, die dieser NET_BUFFER_LIST Struktur zugeordnet sind, war für die zugrunde liegende NIC zu groß.
NDIS_STATUS_RESOURCES Fehler bei der Sendeanforderung für diese NET_BUFFER_LIST Struktur aufgrund unzureichender Ressourcen.
NDIS_STATUS_PAUSED Der Miniportadapter befindet sich im Zustand "Angehalten", wie auf der Referenzseite für die MiniportPause-Funktion beschrieben.
NDIS_STATUS_SEND_ABORTED NDIS hat die MiniportCancelSend-Funktion aufgerufen, um den Sendevorgang für diese NET_BUFFER_LIST Struktur abzubrechen.
NDIS_STATUS_RESET_IN_PROGRESS Der Miniporttreiber hat die Sendeanforderung aufgrund einer Zurücksetzung abgebrochen.
NDIS_STATUS_FAILURE Der Miniporttreiber hat die Sendeanforderung aus einem anderen Grund als den zuvor beschriebenen fehlgeschlagen. Beispielsweise kann der Miniporttreiber die Sendeanforderung aufgrund eines Hardwarefehlers fehlschlagen.

Ein Miniporttreiberaufruf an NdisMSendNetBufferListsComplete bedeutet nicht unbedingt, dass die Daten für eine Sendeanforderung über das Netzwerk übertragen wurden. Die Daten werden möglicherweise in die NIC-Hardware in die Warteschlange gestellt.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.0 und höher.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

Siehe auch

MiniportCancelSend

MiniportInitializeEx-

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists