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 |