Share via


Processing Events That Occur During an Offload

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

An offload target must be able to process the following events while an offload operation is in progress (that is, before the offload target's call to NdisMInitiateOffloadComplete has returned):

  • Initiating another offload operation

The host stack will not attempt to offload a state object if an offload of that state object is already in progress. However, while an offload operation is in progress, NDIS can call an offload target's MiniportInitiateOffload function one or more times to initiate one or more additional offload operations of other state objects.

  • Receiving and indicating receive segments

An offload target can start processing receive segments on TCP connections as soon as the necessary state objects for those connections have been offloaded. An offload target must indicate receive segments on offloaded TCP connections only after the operation that offloaded those connections completes (that is, after NdisMInitiateOffloadComplete has returned). An offload target always indicates such receive segments by calling the NdisTcpOffloadReceiveHandler function.

Note also that the offload target will not receive the following before an offload operation completes:

We recommend that an offload target not call the following indication functions while an offload is in progress: