NdisMSendNetBufferListsComplete-Funktion (ndis.h)

Miniport-Treiber rufen die NdisMSendNetBufferListsComplete-Funktion auf, um eine verknüpfte Liste von NET_BUFFER_LIST Strukturen an einen überlastenden Treiber zurückzugeben und die endgültige status einer Sendeanforderung zurückzugeben.

Syntax

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

Parameter

[in] MiniportAdapterHandle

Das Miniporthandle, das 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 früheren Aufrufen seiner Funktion MiniportSendNetBufferLists empfangen.

[in] SendCompleteFlags

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

Rückgabewert

Keine

Bemerkungen

Ein Miniporttreiber ruft NdisMSendNetBufferListsComplete auf, um Anforderungen abzuschließen, die NDIS an die MiniportSendNetBufferLists-Funktion des Treibers gesendet hat. Der Miniporttreiber gibt eine verknüpfte Liste von NET_BUFFER_LIST Strukturen an, die den abgeschlossenen Sendeanforderungen zugeordnet sind. Während die status der Sendeanforderungen ausstehend ist, behält der Miniporttreiber den Besitz der NET_BUFFER_LIST-Strukturen und aller protokollseitig zugewiesenen Ressourcen, die den NET_BUFFER_LIST-Strukturen zugeordnet sind.

Nachdem ein Miniporttreiber NdisMSendNetBufferListsComplete aufgerufen hat, 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 ausführen. Der Miniporttreiber könnte beispielsweise die NET_BUFFER_LIST-Strukturlisten aus mehreren MiniportSendNetBufferLists-Aufrufen verketten oder eine Liste aus einem MiniportSendNetBufferLists-Aufruf aufteilen. Der Miniporttreiber darf die Liste der NET_BUFFER Strukturen, die einer NET_BUFFER_LIST-Struktur zugeordnet sind, jedoch nicht ändern.

Der Miniporttreiber muss einen der folgenden status Codes im Statuselement 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 Die Sendeanforderung für diese NET_BUFFER_LIST Struktur ist aufgrund unzureichender Ressourcen fehlgeschlagen.
NDIS_STATUS_PAUSED Der Miniportadapter befindet sich im Zustand Angehalten, wie auf der Referenzseite für die Funktion MiniportPause 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 eines Zurücksetzens abgebrochen.
NDIS_STATUS_FAILURE Der Miniporttreiber hat die Sendeanforderung aus einem anderen als den zuvor beschriebenen Gründen fehlgeschlagen. Beispielsweise kann der Miniporttreiber die Sendeanforderung aufgrund eines Hardwarefehlers fehlschlagen.

Der Aufruf eines Miniporttreibers an NdisMSendNetBufferListsComplete bedeutet nicht unbedingt, dass die Daten für eine Sendeanforderung über das Netzwerk übertragen wurden. Die Daten befinden sich möglicherweise in der NIC-Hardware in einer Warteschlange.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_SendRcv_Function(ndis), NdisTimedDataHang, NdisTimedDataSend

Weitere Informationen

MiniportCancelSend

MiniportInitializeEx

MiniportSendNetBufferLists

NET_BUFFER

NET_BUFFER_LIST

NdisSendNetBufferLists