Returning the Completion Status of a Query Offload Operation

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

Before calling the NdisMQueryOffloadStateComplete function, the offload target must write one of the following NDIS_STATUS values to the Status member of each NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure in the state tree:

NDIS_STATUS_SUCCESS
The offload target successfully queried the state objects.

NDIS_STATUS_FAILURE
The query operation did not succeed because the hardware state is corrupt. The host stack will terminate the offload of the state objects that could not be queried.

If the hardware state is corrupt, the offload target must do the following:

  1. Call the NdisMQueryOffloadStateComplete function with a status value of NDIS_STATUS_FAILURE.

  2. Call the NdisTcpOffloadEventHandler function with the EventType parameter set to TcpIndicateRetrieve and the EventSpecificInformation parameter set to HardwareFailure.

  3. Call the NdisTcpOffloadEventHandler function with the EventType parameter set to TcpIndicateAbort.

  4. When the host stack calls the MiniportTerminateOffload function, complete any outstanding calls to the MiniportTcpOffloadSend and MiniportTcpOffloadReceive functions with a status value of NDIS_STATUS_REQUEST_ABORTED in each NET_BUFFER_LIST structure.

  5. Call the NdisMTerminateOffloadComplete function.