NdisMTerminateOffloadComplete-Funktion (ndischimney.h)
[Das TCP-Schornsteinauslagerungsfeature ist veraltet und sollte nicht verwendet werden.]
Ein Auslagerungsziel ruft die NdisMTerminateOffloadComplete-Funktion auf, um einen Beendigungsabladungsvorgang abzuschließen, der durch einen vorherigen Aufruf von initiiert wurde. MiniportTerminateOffload-Funktion des Auslagerungsziels.
void NdisMTerminateOffloadComplete(
[in] IN NDIS_HANDLE NdisMiniportHandle,
[in] IN PNDIS_MINIPORT_OFFLOAD_BLOCK_LIST OffloadBlockList
);
[in] NdisMiniportHandle
Das Handle, das das Auslagerungsziel in einem vorherigen Aufruf von erhalten hat. NdisMRegisterMiniportDriver.
[in] OffloadBlockList
Ein Zeiger auf eine NDIS_MINIPORT_OFFLOAD_BLOCK_LIST Struktur. Das Auslagerungsziel hat diesen Zeiger als Eingabeparameter auf seine MiniportTerminateOffload-Funktion .
Keine
Vor dem Aufrufen der NdisMTerminateOffloadComplete-Funktion muss das Auslagerungsziel einen der folgenden NDIS_STATUS Werte in den Status-Member jeder NDIS_MINIPORT_OFFLOAD_BLOCK_LIST-Struktur in der Zustandsstruktur schreiben:
-
NDIS_STATUS_SUCCESS
Das Auslagerungsziel hat die Auslagerung des Zustandsobjekts erfolgreich beendet, auf das von der NDIS_MINIPORT_OFFLOAD_BLOCK_LIST-Struktur verwiesen wird. Wenn auf die NDIS_MINIPORT_OFFLOAD_BLOCK_LIST-Struktur eine delegierte Zustandsstruktur (XXX_OFFLOAD_STATE_DELEGATED folgt, hat das Auslagerungsziel die delegierten Variablenwerte für dieses Zustandsobjekt erfolgreich in die delegierte Zustandsstruktur geschrieben.
-
NDIS_STATUS_FAILURE
Der Beendigungsvorgang war nicht erfolgreich. Ein solcher Fehler wird durch einen schwerwiegenden Fehler verursacht, der zum Verlust des Zustandsobjekts führte, das beendet werden sollte. In diesem Fall reagiert die Auslagerungszielhardware möglicherweise nicht. Möglicherweise muss der Hoststapel die Verbindung abbrechen.
- Schließen Sie alle ausstehenden Aufrufe von MiniportInvalidateOffload, MiniportQueryOffload, MiniportTcpOffloadReceive ab, MiniportTcpOffloadDisconnect, MiniportTcpOffloadForward, MiniportTcpOffloadSend und MiniportUpdateOffload-Funktionen .
- Stellen Sie sicher, dass alle ausstehenden Aufrufe von NdisMIndicateStatusEx, NdisMOffloadEventIndicate, NdisTcpOffloadEventHandler und NdisTcpOffloadReceiveHandler-Funktionen wurden zurückgegeben.
Bei der Übergabe ausstehender Sendedaten an den Hoststapel muss das Auslagerungsziel auch Werte ohne NULL für die folgenden delegierten TCP-Variablen für die verbindung angeben, die beendet wird:
- SndUna
- SndNxt
- SndMax
Wenn keine ausstehenden Sendedaten für eine tcp-Verbindung vorhanden sind, die beendet wird, muss das Auslagerungsziel einen NULL-Wert für das NetBufferListChain-Element angeben.
Möglicherweise gibt es ausstehende Empfangsdaten für eine TCP-Verbindung, die hochgeladen wird. Dies sind Daten, die das Auslagerungsziel von der Leitung empfangen, verarbeitet und bestätigt hat. Weitere Informationen zur Verarbeitung solcher Daten finden Sie unter Behandeln von gepufferten Empfangsdaten während eines Beendigungsabladungsvorgangs.
Das Auslagerungsziel gibt alle Ressourcen frei, z. B. Arbeitsspeicher, die den beendeten Zustandsobjekten zugeordnet sind.
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ndischimney.h (include Ndischimney.h) |
IRQL | Beliebige Ebene |