NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES structure (netreceivescaling.h)
The NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES structure describes a net adapter's receive side scaling (RSS) capabilities.
Syntax
typedef struct _NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES {
ULONG Size;
SIZE_T NumberOfQueues;
SIZE_T IndirectionTableSize;
SIZE_T UnhashedTargetIndex;
NET_ADAPTER_RECEIVE_SCALING_UNHASHED_TARGET_TYPE UnhashedTargetType;
NET_ADAPTER_RECEIVE_SCALING_HASH_TYPE ReceiveScalingHashTypes;
NET_ADAPTER_RECEIVE_SCALING_PROTOCOL_TYPE ReceiveScalingProtocolTypes;
struct {
NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE Outer;
NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE Inner;
} ReceiveScalingEncapsulationTypes;
_RECEIEVE_SCALING_ENCAPSULATION _RECEIEVE_SCALING_ENCAPSULATION;
BOOLEAN SynchronizeSetIndirectionEntries;
PFN_NET_ADAPTER_RECEIVE_SCALING_ENABLE EvtAdapterReceiveScalingEnable;
PFN_NET_ADAPTER_RECEIVE_SCALING_DISABLE EvtAdapterReceiveScalingDisable;
PFN_NET_ADAPTER_RECEIVE_SCALING_SET_HASH_SECRET_KEY EvtAdapterReceiveScalingSetHashSecretKey;
PFN_NET_ADAPTER_RECEIVE_SCALING_SET_INDIRECTION_ENTRIES EvtAdapterReceiveScalingSetIndirectionEntries;
} NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES;
Members
Size
The size of this structure, in bytes.
NumberOfQueues
The number of hardware receive queues. This member must be a power of 2.
IndirectionTableSize
The number of indirection table entries. This member must be a minimum of 128 and a power of 2.
UnhashedTargetIndex
The default destination for frames to which no hash is applied. The value of this member depends on the value of the UnhashedTargetType member:
- If UnhashedTargetType is set to NetAdapterReceiveScalingUnhashedTargetTypeUnspecified, UnhashedTarget is ignored.
- If UnhashedTargetType is set to NetAdapterReceiveScalingUnhashedTargetTypeHashIndex, UnhashedTarget specifies a hash index in the indirection table.
This member must be N, where 0 <= N < IndirectionTableSize
.
UnhashedTargetType
A NET_ADAPTER_RECEIVE_SCALING_UNHASHED_TARGET_TYPE value that indicates the type of handling for unhashed frames.
If this member is set to NetAdapterReceiveScalingUnhashedTargetTypeUnspecified, then UnhashedTargetIndex is ignored and defaults to 0.
If this member is set to NetAdapterReceiveScalingUnhashedTargetTypeHashIndex, then UnhashedTargetIndex indicates the target hash value.
ReceiveScalingHashTypes
A NET_ADAPTER_RECEIVE_SCALING_HASH_TYPE value that indicates supported hash function types for calculating hash values.
ReceiveScalingProtocolTypes
A NET_ADAPTER_RECEIVE_SCALING_PROTOCOL_TYPE value that indicates the supported protocol types for calculating hash values.
ReceiveScalingEncapsulationTypes
Indicates which encapsulation technologies the hardware is capable of bypassing.
ReceiveScalingEncapsulationTypes.Outer
A bitwise OR of NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE values that indicates the transport (outer) encapsulation types that the NIC is capable of bypassing.
ReceiveScalingEncapsulationTypes.Inner
A bitwise OR of NET_ADAPTER_RECEIVE_SCALING_ENCAPSULATION_TYPE values that indicates the tunnel (inner) encapsulation types that the NIC is capable of bypassing.
_RECEIEVE_SCALING_ENCAPSULATION
The tag identifier for ReceiveScalingEncapsulationTypes.
SynchronizeSetIndirectionEntries
A boolean value that, when set to TRUE, requests that the framework synchronize calls to EvtNetAdapterReceiveScalingSetIndirectionEntries. This member is set to FALSE by default if the client driver does not specify it.
EvtAdapterReceiveScalingEnable
A pointer to the client driver's EvtNetAdapterReceiveScalingEnable event callback function.
EvtAdapterReceiveScalingDisable
A pointer to the client driver's EvtNetAdapterReceiveScalingDisable event callback function.
EvtAdapterReceiveScalingSetHashSecretKey
A pointer to the client driver's EvtNetAdapterReceiveScalingSetHashSecretKey event callback function.
EvtAdapterReceiveScalingSetIndirectionEntries
A pointer to the client driver's EvtNetAdapterReceiveScalingSetIndirectionEntries event callback function.
Remarks
Call NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT to initialize this structure.
The NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES structure is an input parameter to NetAdapterSetReceiveScalingCapabilities. The client must use NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT to initialize this structure before calling NetAdapterSetReceiveScalingCapabilities.
Requirements
Requirement | Value |
---|---|
Minimum KMDF version | 1.27 |
Minimum UMDF version | 2.33 |
Header | netreceivescaling.h (include netadaptercx.h) |
See also
NET_ADAPTER_RECEIVE_SCALING_CAPABILITIES_INIT