Share via


Querying and Setting an Intermediate Driver's TCP Chimney Offload Capabilities

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

If an intermediate driver's MiniportInitializeEx function returns NDIS_STATUS_SUCCESS, NDIS and the host stack query the operational characteristics of the offload target. In particular, the host stack queries the OID_TCP_TASK_OFFLOAD OID to determine an offload target's task offload and TCP chimney offload capabilities. For more information about task offload capabilities, see NDIS_TASK_OFFLOAD. For more information about TCP chimney offload capabilities, see NDIS_TASK_TCP_CONNECTION_OFFLOAD.

If the intermediate driver allows either task offload or TCP chimney offload, it should propagate the query of OID_TCP_TASK_OFFLOAD to the underlying driver. If the intermediate driver does not allow TCP chimney offload, it can still propagate up the underlying driver's advertisement of TCP chimney offload capabilities. In this situation, NDIS blocks TCP chimney offload for the intermediate driver and underlying drivers because the intermediate driver has not registered any MiniportXxx or ProtocolXxx TCP chimney functions.

If the intermediate driver allows neither task offload nor TCP chimney offload, its MiniportRequest function should return NDIS_STATUS_NOT_SUPPORTED in response to a query of OID_TCP_TASK_OFFLOAD. This response blocks the underlying driver from receiving the query.After determining the underlying driver's task offload and TCP chimney offload capabilities, the host stack sets

OID_TCP_TASK_OFFLOAD to enable the offload target's task offload and TCP chimney offload capabilities. An intermediate driver should always pass such a set request to the underlying driver.