Terminating the Offload of a Connection Because of Resource Constraints

[The TCP chimney offload feature is deprecated and should not be used.]

After a TCP connection has been offloaded, an offload target might fail to allocate the necessary resources for the connection. For example, the offload target's call to NdisMAllocateNetBufferSGList could fail. If this failure happens, the offload target should request that the host stack terminate the offload of the connection. The offload makes such a request by calling the NdisTcpOffloadEventHandler function with the EventType parameter set to TcpIndicateRetrieve and the EventSpecificInformation parameter set to UploadRequested. If the offload target receives an I/O request (a call to the MiniportTcpOffloadDisconnect, MiniportTcpOffloadForward, MiniportTcpOffloadReceive, MiniportTcpOffloadReceiveReturn, or MiniportTcpOffloadSend function) before the offload termination has completed, the offload target should complete such a request with NDIS_STATUS_UPLOAD_IN_PROGRESS.