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 |