Querying and Changing RSC State

This section describes how to query or change the current receive segment coalescing (RSC) state of an RSC-capable miniport driver.

Querying RSC State

The current RSC state can be queried by issuing the OID_TCP_OFFLOAD_CURRENT_CONFIG OID request. NDIS handles this OID and does not pass it down to the miniport.

Changing RSC State

RSC can be enabled or disabled by issuing the OID_TCP_OFFLOAD_PARAMETERS OID request. This OID uses an NDIS_OFFLOAD_PARAMETERS structure. In this structure, the RscIPv4 and RscIPv6 members can have the following values:

Term Description

NDIS_OFFLOAD_PARAMETERS_NO_CHANGE

The RSC state is unchanged.

NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED

Specify this flag to disable RSC.

NDIS_OFFLOAD_PARAMETERS_RSC_ENABLED

Specify this flag to enable RSC.

After the miniport driver processes the OID_TCP_OFFLOAD_PARAMETERS OID request, it must give an NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG status indication with the updated offload state.

When a miniport driver receives a OID_TCP_OFFLOAD_CURRENT_CONFIG OID request in which the NDIS_OFFLOAD_PARAMETERS_RSC_DISABLED flag is specified, the driver must indicate any existing coalesced segments up the stack before completing the OID request.