Initiate Offload Call Sequence
[The TCP chimney offload feature is deprecated and should not be used.]
From the perspective of an offload target, an offload of TCP chimney state is initiated when NDIS calls the offload target's MiniportInitiateOffload function. The MiniportInitiateOffload function inputs the following parameters:
A handle in MiniportAdapterContext that references the adapter instance.
A pointer in OffloadBlockList that points to an NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure. This structure can be a stand-alone structure or the root node of a linked list of NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structures that form an offload state tree.
The MiniportInitiateOffload function stores the pointer in OffloadBlockList and then returns. The offload target always completes the offload operation asynchronously by calling NdisMInitiateOffloadComplete.
The following figure shows the initiate offload call sequence.
The offload target's internal offload function, which is labeled "NicOffload" in the preceding figure, offloads the state from the state tree that is pointed to by the pointer that is in OffloadBlockList . After the internal offload is complete, the offload target writes a completion status to each NDIS_MINIPORT_OFFLOAD_BLOCK_LIST structure in the state tree and calls the NdisMInitiateOffloadComplete function, passing the pointer in OffloadBlockList back to the host stack.