NDIS_QOS_SQ_PARAMETERS Struktur (ntddndis.h)
Die NDIS_QOS_SQ_PARAMETERS-Struktur enthält die Parameter einer NDIS Quality of Service (QoS) Scheduler Queue (SQ).
Syntax
typedef struct _NDIS_QOS_SQ_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_QOS_SQ_ID SqId;
NDIS_QOS_SQ_TYPE SqType;
BOOLEAN TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES];
ULONG CrossTcTransmitBandwidthCap;
ULONG MaxNumSqInputs;
} NDIS_QOS_SQ_PARAMETERS, *PNDIS_QOS_SQ_PARAMETERS;
Angehörige
Header
Der Typ, die Überarbeitung und die Größe der NDIS_QOS_SQ_PARAMETERS Struktur. Dieses Element ist als NDIS_OBJECT_HEADER Struktur formatiert.
Der Miniporttreiber muss den Type Member von Header- auf NDIS_OBJECT_TYPE_DEFAULT, das Revision selement auf NDIS_QOS_SQ_PARAMETERS_REVISION_2 und das Size Member auf NDIS_SIZEOF_QOS_SQ_PARAMETERS_REVISION_2 festlegen.
Flags
Ein ULONG-Wert, der ein bitweises OR von Flags enthält. Diese Flags geben die verschiedenen Funktionen und Attribute der Hardware QoS Offload-Features an, die auf dem SQ aktiviert sind. Die folgenden Flags sind definiert:
NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
Wenn dieses Kennzeichen festgelegt ist, sind Bandbreitengrenzen auf diesem SQ aktiviert.
NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
Wenn dieses Kennzeichen festgelegt ist, sind Übertragungsbandbreitenreservierungen auf diesem SQ aktiviert.
NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
Wenn dieses Flag festgelegt ist, werden Bandbreitengrenzen für diesen SQ aktiviert.
SqId
Eine NDIS_QOS_SQ_ID, die die SQ-ID dieses SQ enthält. NDIS weist diese ID zu.
SqType
Eine NDIS_QOS_SQ_TYPE, die den Typ dieses SQ enthält. Dies kann aus der Enumerationsdefinition von NDIS_QOS_SQ_TYPENdisQosSqSqTypeStandard werden.
TcEnabledTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
Ein Array von BOOLESCHEN Werten, die angeben, ob jede Datenverkehrsklasse (von 0 bis NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES) für die Planung in diesem SQ aktiviert ist.
Jede Datenverkehrsklasse (TC), für die dieses Feld TRUE- ist, sollte in den folgenden Tabellen gelesen und überprüft werden und ist auch durch CrossTcTransmitBandwidthCapeingeschränkt.
Jeder TC, für den dieses Feld FALSE ist, nimmt nicht an der Begrenzung der QoS-Rate von CrossTcTransmitBandwidthCap oder den nachfolgenden Tabellen pro TC teil.
TcTransmitBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
Ein Array von ULONG-Elementen, die Bandbreitengrenzen für jeden TC in Mbps angeben. Elemente sind nur gültig, wenn das NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
Flag festgelegt ist und das entsprechende Element in TcEnabledTableTRUEist. Ein Element mit dem Wert 0 hat keine Großbuchstaben.
Die NIC sollte alle Übertragungspakete auf diesem SQ für einen bestimmten TC in die Warteschlange stellen, wenn sie die in dieser Tabelle angegebene Rate überschreiten.
TcTransmitBandwidthReservationTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
Ein Array von ULONG-Elementen, die bandbreitenreservierungen für jeden TC angeben, in relativen Werten von 0 – ULONG_MAX. Elemente sind nur gültig, wenn das NDIS_QOS_SQ_TRANSMIT_RESERVATION_ENABLED
Flag festgelegt ist und das entsprechende Element in TcEnabledTableTRUEist. Ein Element mit dem Wert 0 bedeutet, dass das Übertragen von Paketen auf diesem SQ/TC die Reservierung des Standard-SQ für diesen TC teilt.
Die NIC sollte alle Übertragungspakete auf diesem SQ für einen bestimmten TC in die Warteschlange stellen, wenn andere SQs Bandbreite benötigen, um ihre Reservierung für diesen TC zu erfüllen.
TcReceiveBandwidthCapTable[NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES]
Ein Array von ULONG-Elementen, die Bandbreitengrenzen für jeden TC in Mbps angeben. Elemente sind nur gültig, wenn das NDIS_QOS_SQ_RECEIVE_CAP_ENABLED
Flag festgelegt ist und das entsprechende Element in TcEnabledTableTRUEist. Ein Element mit dem Wert 0 hat keine Großbuchstaben.
Dies ist ein optionales Feature zum Aktivieren der Bandbreitenkapping für Empfangsbandbreiten. NICs, die den Empfang von Cap-Support bewerben, sollten jedes Empfangspaket ablegen, nachdem ein bestimmter TC auf diesem SQ die in diesem Array angegebene Rate überschritten hat (basierend auf der Planungsimplementierung der NIC).
CrossTcTransmitBandwidthCap
Ein ULONG-Wert, der die Übertragungsbandbreitengrenze für Datenverkehr über TCs angibt, deren entsprechendes Element in TcEnabledTable-TRUE-ist, wenn das NDIS_QOS_SQ_TRANSMIT_CAP_ENABLED
-Flag festgelegt ist.
MaxNumSqInputs
Ein ULONG-Wert, der einen "Hinweis" für den Miniport für die wahrscheinliche Anzahl von vPorts bietet, die das Betriebssystem dem SQ zuordnen wird. Dieser Wert kann nach der ERSTELLUNG von SQ nicht geändert werden.
Der Miniport kann diesen Hinweis verwenden, um seine Ressourcen besser zu verwalten. Der Miniport stellt den best-effort-Dienst bereit, um die Anforderung zu erfüllen, kann jedoch aufgrund unzureichender Ressourcen zur ERSTELLUNGszeit oder zur vPort-Zuordnung fehlschlagen.
Der Miniport muss einen Fehler zurückgeben, wenn dieser Wert den MaxNumSQInputs Wert überschreitet, der durch den Miniport in NDIS_QOS_OFFLOAD_CAPABILITIESangegeben wird.
Bemerkungen
Die NDIS_QOS_SQ_PARAMETERS Struktur wird in der OID-Abfrageanforderung OID_QOS_OFFLOAD_ENUM_SQSzurückgegeben, die SQs aufzählt, die auf einem NIC-Switch erstellt wurden.
NDIS_QOS_SQ_PARAMETERS wird auch in der OID-Methodenanforderung OID_QOS_OFFLOAD_CREATE_SQzurückgegeben, wodurch ein neuer SQ auf dem Miniportadapter erstellt wird.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.85 und höher. |
mindestens unterstützte Server- | Windows Server 2022 |
Header- | ntddndis.h (include ndis.h) |