// netadapteroffload.h
typedef struct _NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES {
ULONG Size;
NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags;
NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags;
UINT16 Layer4HeaderOffsetLimit;
SIZE_T MaximumOffloadSize;
SIZE_T MinimumSegmentCount;
PFN_NET_ADAPTER_OFFLOAD_SET_GSO EvtAdapterOffloadSetGso;
} NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES;
View the official Windows Driver Kit DDI referenceNo description available.
The NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES structure describes a network interface card (NIC)'s capabilities for Generic Segmentation Offload (GSO).
SizeThe size of this structure, in bytes.
Layer3FlagsFlags specifying the layer 3 protocol variations that the NIC can successfully perform GSO on.
The flags should be a combination of:
| Flag | Description |
|---|---|
| NetAdapterOffloadLayer3FlagIPv4NoOptions | Set if the NIC is capable of performing GSO on IPv4 packets without options |
| NetAdapterOffloadLayer3FlagIPv4WithOptions | Set if the NIC is capable of performing GSO on IPv4 packets with options |
| NetAdapterOffloadLayer3FlagIPv6NoExtensions | Set if the NIC is capable of performing GSO on IPv6 packets without extensions |
| NetAdapterOffloadLayer3FlagIPv6WithExtensions | Set if the NIC is capable of performing GSO on IPv6 packets with extensions |
Layer4FlagsFlags specifying the layer 4 protocol variations that the NIC can successfully perform GSO on. The NetAdapterOffloadLayer4FlagTcpNoOptions flag must be set if the NIC supports LSO. The NetAdapterOffloadLayer4FlagUdp flag must be set if the NIC supports USO.
The flags should be a combination of:
| Flag | Description |
|---|---|
| NetAdapterOffloadLayer4FlagTcpNoOptions | Set if the NIC is capable of performing LSO on TCP packets without options |
| NetAdapterOffloadLayer4FlagTcpWithOptions | Set if the NIC is capable of performing LSO on TCP packets with options |
| NetAdapterOffloadLayer4FlagUdp | Set if the NIC is capable of performing USO on UDP packets |
Layer4HeaderOffsetLimitThe maximum layer 4 header offset that the NIC supports in bytes. This field is optional.
MaximumOffloadSizeThe maximum bytes of user data that the transport can pass to the NIC driver in a single packet.
MinimumSegmentCountThe minimum number of segments by which a large TCP/UDP packet must be divisible before the transport can offload it to the hardware for segmentation.
EvtAdapterOffloadSetGsoA pointer to the client driver's implementation of the EVT_NET_ADAPTER_OFFLOAD_SET_GSO callback function.
Call NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT to initialize this structure. The client driver passes an initialized NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES structure as a parameter to NetAdapterOffloadSetGsoCapabilities.
NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT
NetAdapterOffloadSetGsoCapabilities
EVT_NET_ADAPTER_OFFLOAD_SET_GSO