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 |