Responding to the Reception of a FIN or RST Segment
[The TCP chimney offload feature is deprecated and should not be used.]
A remote host issues a graceful disconnect on an offloaded TCP connection by sending a FIN segment. In response, an offload target must call the NdisTcpOffloadEventHandler function with the EventType parameter set to TcpIndicateDisconnect after the offload target ensures that all received data on the connection has been consumed by the client application.
A remote host issues an abortive disconnect on an offloaded TCP connection by sending an RST segment. In response to receiving an acceptable RST segment, an offload target calls the NdisTcpOffloadEventHandler function with the EventType parameter set to TcpIndicateAbort. The offload target completes all outstanding send requests, receive requests, and disconnect requests on the connection with NDIS_STATUS_REQUEST_ABORT.
Note that a graceful disconnect shuts down only the receive half of the connection. It does not shut down the send half of the connection.
In response to either a FIN or RST segment, an offload target must not free the resources for the connection until the host stack terminates the offload of the connection.
If the offload target receives data on the connection when the connection is in the CLOSED state, it should forward such data to the host stack through the nonoffload NDIS interface by calling the NdisMIndicateReceiveNetBufferLists function.