// ntddndis.h
typedef struct _NDIS_QOS_OFFLOAD_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG SupportedSqTypes;
BOOLEAN TransmitCapSupported[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
BOOLEAN TransmitReservationSupported[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
BOOLEAN ReceiveCapSupported[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
BOOLEAN TransmitGftCapSupported[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
BOOLEAN ReceiveGftCapSupported[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
BOOLEAN TcSupportedTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG NumStandardSqsSupported;
ULONG NumGftSqsSupported;
ULONG ReservationGranularitySupported;
ULONG MaxNumSqInputs;
BOOLEAN CrossTcTransmitMaxCapSupported;
} NDIS_QOS_OFFLOAD_CAPABILITIES, *PNDIS_QOS_OFFLOAD_CAPABILITIES;
View the official Windows Driver Kit DDI referenceNo description available.
The NDIS_QOS_OFFLOAD_CAPABILITIES structure specifies the hardware and current Hardware Quality of Service (QoS) offload capabilities of a miniport adapter.
HeaderThe type, revision, and size of the NDIS_QOS_OFFLOAD_CAPABILITIES structure. This member is formatted as an NDIS_OBJECT_HEADER structure.
The miniport driver must set the Type member of Header to NDIS_OBJECT_TYPE_DEFAULT.
The driver must set the Revision member of Header to NDIS_QOS_OFFLOAD_CAPABILITIES_REVISION_2 to specify the version of the NDIS_QOS_OFFLOAD_CAPABILITIES structure.
The driver must set the Size member to NDIS_SIZEOF_QOS_OFFLOAD_CAPABILITIES_REVISION_2.
FlagsThis field is not used in NDIS_QOS_OFFLOAD_CAPABILITIES_REVISION_2. The driver must set this member to zero.
SupportedSqTypesA ULONG value that contains a bitwise OR of flags. These flags specify the type of NDIS QoS Scheduler Queues (SQs) that the miniport adapter supports. The following flags are defined:
If this flag is set, the miniport adapter supports standard SQs.
TransmitCapSupportedAn array of BOOLEAN values that specify whether the miniport adapter supports transmit bandwidth caps for each traffic class (TC). For more information, see NDIS QoS Traffic Classes.
TransmitReservationSupportedAn array of BOOLEAN values that specify whether the miniport adapter supports transmit bandwidth reservations for each TC.
ReceiveCapSupportedAn array of BOOLEAN values that specify whether the miniport adapter supports receive bandwidth caps for each TC.
TransmitGftCapSupportedReserved for future use.
ReceiveGftCapSupportedReserved for future use.
TcSupportedTableAn array of BOOLEAN values that specify whether the miniport adapter supports rate limits for each TC.
NumStandardSqsSupportedA ULONG value that contains the maximum number of standard SQs that can be created on the miniport adapter.
NumGftSqsSupportedFor forward compatibility, the miniport driver must set this field to zero when responding to the OS query.
ReservationGranularitySupportedA ULONG value that contains the scheduling granularity that the NIC can support for transmit reservations. For example, if the NIC can support at most a 1:10000 ratio between effective queues, this value should be 10000. This value is purely informational. A NIC may be asked to schedule queues with ratios between reservation values that exceed this granularity. In this case, the result should be a best approximation.
MaxNumSqInputsA ULONG value that contains the maximum number of vPorts that can be associated with an SQ.
CrossTcTransmitMaxCapSupportedIf TRUE, the miniport adapter supports a single transmit cap value for traffics across multiple TCs.
The NDIS_QOS_OFFLOAD_CAPABILITIES structure is returned in OID query requests OID_QOS_OFFLOAD_HARDWARE_CAPABILITIES and OID_QOS_OFFLOAD_CURRENT_CAPABILITIES.
OID_QOS_OFFLOAD_HARDWARE_CAPABILITIES
OID_QOS_OFFLOAD_CURRENT_CAPABILITIES