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.
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.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ndischimney.h (include Ndischimney.h) |