Freigeben über


NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE Rückruffunktion (ndischimney.h)

[Das TCP-Schornstein-Offload-Feature ist veraltet und sollte nicht verwendet werden.]

Ein Offloadziel ruft die NdisTcpOffloadReceiveComplete-Funktion auf, um gepostete Empfangsanforderungen (Empfangspuffer) an den Hoststapel zurückzugeben. Das Offloadziel hat zuvor die Empfangsanforderungen in einem oder mehreren Anrufen an seine MiniportTcpOffloadReceive Funktion.

Syntax

NDIS_TCP_OFFLOAD_RECEIVE_COMPLETE NdisTcpOffloadReceiveComplete;

void NdisTcpOffloadReceiveComplete(
  [in] IN NDIS_HANDLE NdisMiniportHandle,
  [in] IN PNET_BUFFER_LIST NetBufferList
)
{...}

Parameter

[in] NdisMiniportHandle

Das Handle, das das Offloadziel in einem vorherigen Aufruf des NdisMRegisterMiniportDriver Funktion.

[in] NetBufferList

Ein Zeiger auf eine NET_BUFFER_LIST Struktur. Diese Struktur kann eigenständig oder die erste Struktur in einer verknüpften Liste mit NET_BUFFER_LIST Strukturen sein. Das Offloadziel hat diese Strukturen in einem oder mehreren Aufrufen seiner MiniportTcpOffloadReceive Funktion.

Rückgabewert

Nichts

Bemerkungen

Ein Offloadziel sollte vorab bereitgestellte Empfangsanforderungen in der Reihenfolge verwenden und zurückgeben, in der die Anforderungen in die MiniportTcpOffloadReceive Funktion des Offload-Ziels. Das heißt, das Offloadziel sollte vorab gepostete Empfangsanforderungen zuerst in fiFO-Reihenfolge (First Out) verwenden und zurückgeben.

Ein Offloadziel muss Aufrufe an die NdisTcpOffloadReceiveComplete-Funktion und an die NdisTcpOffloadReceiveHandler Funktion pro -connection Basis.

Die MiniportTcpOffloadReceive-Funktion eines Offloadziels kann im Kontext des Aufrufs eines Offloadziels an die NdisTcpOffloadReceiveComplete--Funktion aufgerufen werden. In diesem Fall darf ein Offloadziel die NdisTcpOffloadReceiveComplete- Funktion nicht erneut aufrufen, bis der vorherige Aufruf von NdisTcpOffloadReceiveComplete zurückgegeben wurde.

Um die Systemleistung zu verbessern, kann ein Offloadziel eine verknüpfte Liste erstellen, die die NET_BUFFER_LIST Strukturen aus mehreren Aufrufen enthält. MiniportTcpOffloadReceive Funktion. Das Offloadziel kann eine solche verknüpfte Liste in einem einzigen Aufruf an die NdisTcpOffloadReceiveComplete-Funktion übergeben. Beachten Sie, dass ein Offloadziel die Empfangenanforderungen verteilen kann, die in einem einzigen Anruf an den MiniportTcpOffloadReceive Funktion über mehrere Abschlussaufrufe hinweg, solange das Offloadziel die Empfangenanforderungen in derselben Reihenfolge abschließt, in der sie in der MiniportTcpOffloadReceive-Funktion gepostet wurden.

Bevor Sie die NdisTcpOffloadReceiveComplete--Funktion aufrufen, führt das Offloadziel für jede NET_BUFFER_LIST Struktur, die sie an die Funktion übergibt, Folgendes aus:

  • Schreibt einen der folgenden Statuswerte in das Status Member:
    NDIS_STATUS_SUCCESS
    Das Offloadziel hat alle Daten empfangen, die den NET_BUFFER_LIST Strukturen zugeordnet sind, auf die vom NetBufferList Parameter verwiesen wird. Das Offloadziel erweiterte außerdem die RcvNxt und RcvWnd Variablen im delegierten TCP-Zustand für die TCP-Verbindung. Das Offloadziel hat möglicherweise eine Bestätigung für die empfangenen Daten generiert, je nachdem, ob das Offloadziel auf das Senden einer verzögerten Bestätigung wartet.
    NDIS_STATUS_REQUEST_ABORTED
    Fehler beim Verarbeiten der empfangenen Daten durch das Offloadziel. Wenn das Offloadziel einige gültige Daten mit den NET_BUFFER_LIST Strukturen angibt, auf die der NetBufferList Parameter verweist, gibt das Offloadziel die Anzahl gültiger Datenbytes an, indem das NET_BUFFER_LIST_INFO-Makro aufgerufen wird. Das Offloadziel hat möglicherweise einen Teil der empfangenen Daten bestätigt oder nicht bestätigt.
    NDIS_STATUS_UPLOAD_IN_PROGRESS
    Die Verbindung, für die der Puffer gepostet wurde, wird hochgeladen.
    NDIS_STATUS_INVALID_STATE
    Die Empfangsanforderung wurde gepostet, nachdem das Offload-Ziel eine Verbindung durch Aufrufen angegeben hat. NdisTcpOffloadEventHandler.
  • Gibt die Anzahl der Datenbytes an, die durch Aufrufen des NET_BUFFER_LIST_INFO-Makros mit einer ID- von TcpOffloadBytesTransferredzurückgegeben werden.
  • Ruft die NdisAdvanceNetBufferDataStart Funktion. Der NetBufferList Parameter sollte auf die NET_BUFFER Struktur verweisen, die der NET_BUFFER_LIST Struktur zugeordnet ist. Der parameter DataOffsetDelta sollte die Anzahl der Datenbytes angeben, die das Offloadziel in den Speicherdeskriptorlisten (MDLs) platziert hat, die der NET_BUFFER-Struktur zugeordnet sind. Der parameter FreeMdl sollte NULL-sein.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ndischimney.h (include Ndischimney.h)
IRQL- Beliebige Ebene

Siehe auch

MiniportTcpOffloadReceive

NET_BUFFER

NET_BUFFER_LIST

NdisAdvanceNetBufferDataStart-

NdisMRegisterMiniportDriver-