Freigeben über


NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE Rückruffunktion (ndischimney.h)

[Das TCP-Schornsteinauslagerungsfeature ist veraltet und sollte nicht verwendet werden.]

Ein Auslagerungsziel ruft die NdisTcpOffloadDisconnectComplete-Funktion auf, um eine Verbindungsanforderung abzuschließen, die von einem vorherigen Aufruf des initiiert wurde. MiniportTcpOffloadDisconnect-Funktion des Auslagerungsziels.

Syntax

NDIS_TCP_OFFLOAD_DISCONNECT_COMPLETE NdisTcpOffloadDisconnectComplete;

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

Parameter

[in] NdisMiniportHandle

Das Handle, das das Auslagerungsziel bei einem vorherigen Aufruf der NdisMRegisterMiniportDriver-Funktion .

[in] NetBufferList

Ein Zeiger auf eine einzelne NET_BUFFER_LIST-Struktur . Das Auslagerungsziel hat diesen Zeiger als Eingabeparameter auf seine MiniportTcpOffloadDisconnect-Funktion .

Rückgabewert

Keine

Bemerkungen

Abschließen einer abgebrochenen Trennung

Wenn das Auslagerungsziel eine abgebrochene Trennung ausgegeben hat, muss es die folgenden Schritte ausführen, bevor die NdisTcpOffloadDisconnectComplete-Funktion aufgerufen wird:

  • Schließen Sie alle ausstehenden Sendeanforderungen für die Verbindung mit dem status Wert NDIS_STATUS_REQUEST_ABORTED ab. Das Auslagerungsziel schreibt diesen status Wert in den Status-Member jeder NET_BUFFER_LIST-Struktur in der verknüpften Liste, die an die NdisTcpOffloadSendComplete-Funktion .
  • Schreiben Sie einen status Wert in das Status-Element der NET_BUFFER_LIST-Struktur, auf die der NetBufferList-Zeiger verweist. Ein status Wert von NDIS_STATUS_SUCCESS gibt an, dass das Auslagerungsziel erfolgreich das RST-Segment gesendet hat. Eine Beschreibung der zulässigen status Werte finden Sie unter NET_BUFFER_LIST.
Abschließen einer ordnungsgemäßen Trennung

Bevor eine ordnungsgemäße Trennungsanforderung abgeschlossen wird, muss das Auslagerungsziel Folgendes ausführen:

  • Schreiben Sie einen status-Wert in den Status-Member der NET_BUFFER_LIST-Struktur, die an den übergeben wird. NdisTcpOffloadDisconnectComplete-Funktion :
    • Der Wert NDIS_STATUS_SUCCESS gibt an, dass das FIN-Segment sowie alle Benutzerdaten erfolgreich vom Auslagerungsziel gesendet und auch vom Remotehost bestätigt wurden.
    • Der Wert NDIS_STATUS_UPLOAD_IN_PROGRESS gibt an, dass die TCP-Verbindung, auf die von NdisMiniportHandle verwiesen wird, hochgeladen wird.
    • Der Wert NDIS_STATUS_REQUEST_ABORTED gibt an, dass das FIN-Segment und/oder benutzerdaten nicht erfolgreich vom Auslagerungsziel übertragen und vom Remotehost bestätigt wurden. Der Hoststapel beendet schließlich die Auslagerung der TCP-Verbindung.
  • Geben Sie die Anzahl der gesendeten und erfolgreich bestätigten Benutzerdatenbytes an. Das Auslagerungsziel ruft dazu das makro NET_BUFFER_LIST_INFO mit der IDTcpOffloadBytesTransferred auf.
  • Rufen Sie die folgenden NdisAdvanceNetBufferDataStart-Funktion . Der NetBufferList-Parameter sollte auf die NET_BUFFER-Struktur verweisen, die der NET_BUFFER_LIST-Struktur zugeordnet ist, die das Auslagerungsziel an die NdisTcpOffloadDisconnectComplete-Funktion übergibt. Der Parameter DataOffsetDelta sollte die Anzahl der Datenbytes aus der NET_BUFFER-Struktur angeben, die sowohl vom Auslagerungsziel übertragen als auch vom Remotehost erfolgreich bestätigt wurden. Der FreeMdl-Parameter sollte NULL sein.
Beachten Sie, dass die NdisTcpOffloadDisconnectComplete-Funktion nur die NET_BUFFER_LIST-Struktur und die zugeordneten Strukturen zurückgibt, die NDIS an das Auslagerungsziel übergeben hat. MiniportTcpOffloadDisconnect-Funktion . Die NdisTcpOffloadDisconnectComplete-Funktion kann keine NET_BUFFER_LIST Strukturen zurückgeben, die NDIS in vorherigen Aufrufen des Auslagerungsziels übergeben hat. MiniportTcpOffloadSend-Funktion .

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ndischimney.h (include Ndischimney.h)

Weitere Informationen

MiniportTcpOffloadDisconnect

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

NdisAdvanceNetBufferDataStart

NdisMRegisterMiniportDriver

NdisTcpOffloadSendComplete