Freigeben über


NdisMTerminateOffloadComplete-Funktion (ndischimney.h)

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

Ein Offload-Ziel ruft die NdisMTerminateOffloadComplete--Funktion auf, um einen Beendigungs-Offload-Vorgang abzuschließen, der durch einen vorherigen Aufruf an den MiniportTerminateOffload Funktion des Offload-Ziels.

Syntax

void NdisMTerminateOffloadComplete(
  [in] IN NDIS_HANDLE                       NdisMiniportHandle,
  [in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);

Parameter

[in] NdisMiniportHandle

Das Handle, das das Offloadziel in einem vorherigen Aufruf erhalten hat NdisMRegisterMiniportDriver.

[in] OffloadBlockList

Ein Zeiger auf einen NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur. Das Offload-Ziel hat diesen Zeiger als Eingabeparameter auf seine MiniportTerminateOffload Funktion.

Rückgabewert

Nichts

Bemerkungen

Vor dem Aufrufen der NdisMTerminateOffloadComplete--Funktion muss das Offloadziel einen der folgenden NDIS_STATUS Werte in das Status-element jeder NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur in der Zustandsstruktur schreiben:

  • NDIS_STATUS_SUCCESS

    Das Offload-Ziel beendete erfolgreich den Offload des Zustandsobjekts, auf das durch die NDIS_MINIPORT_OFFLOAD_BLOCK_LIST-Struktur verwiesen wird. Wenn auf die NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur eine delegierte Zustandsstruktur folgt (XXX_OFFLOAD_STATE_DELEGATED), hat das Offloadziel erfolgreich die delegierten Variablenwerte für dieses Zustandsobjekt in die delegierte Zustandsstruktur geschrieben.

  • NDIS_STATUS_FAILURE

    Der Beendigungsvorgang wurde nicht erfolgreich ausgeführt. Ein solcher Fehler wird durch einen katastrophalen Fehler verursacht, der zum Verlust des Zustandsobjekts führte, das beendet werden sollte. In diesem Fall reagiert die Zielhardware möglicherweise nicht. Möglicherweise muss der Hoststapel die Verbindung abbrechen.

Vor dem Aufrufen der NdisMTerminateOffloadComplete--Funktion muss das Offloadziel auch: Wenn es ausstehende Sendedaten in einer tcp-Verbindung gibt, die beendet wird, werden die Zielpakete für die Zielpakete in Netpuffern an den Hoststapel in einer verknüpften Liste mit NET_BUFFER_LIST Strukturen übergeben. In diesem Fall gibt das Offload-Ziel einen Wert ungleichNULL für den NetBufferListChain Member der NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur für diese Verbindung an. (Die NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur befindet sich in der verknüpften Liste, auf die der OffloadBlockList- Zeiger verweist.) Die NetBufferListChain Member verweist auf die verknüpfte Liste der NET_BUFFER_LIST Strukturen, denen die Sendedaten zugeordnet sind.

Wenn ausstehende Sendedaten an den Hoststapel übergeben werden, muss das Offloadziel auch werte ohneNULL- für die folgende delegierte TCP-Variablen für die beendete Verbindung angeben:

  • SndUna
  • SndNxt
  • SndMax
Weitere Informationen zum Übergeben ausstehender Sendedaten finden Sie unter Behandeln ausstehender Sendedaten während und nach einem Offload-Vorgang.

Wenn keine ausstehenden Sendedaten für eine TCP-Verbindung vorhanden sind, die beendet wird, muss das Offloadziel einen NULL- Wert für den NetBufferListChain Member angeben.

Möglicherweise gibt es ausstehende Empfangsdaten in einer TCP-Verbindung, die hochgeladen wird. Dies sind Daten, die das Offloadziel von der Leitung, Verarbeitung und Bestätigung erhalten hat. Weitere Informationen zur Verarbeitung solcher Daten finden Sie unter Behandeln von gepufferten Empfangendaten während eines Beenden-Offload-Vorgangs.

Das Offloadziel gibt alle Ressourcen frei, z. B. Arbeitsspeicher, die den beendeten Zustandsobjekten zugeordnet sind.

Anforderungen

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

Siehe auch

MiniportTerminateOffload-

NDIS_MINIPORT_OFFLOAD_BLOCK_LIST

NdisMRegisterMiniportDriver-

TCP_OFFLOAD_STATE_DELEGATED