Angeben von Änderungen an den betriebstechnischen NDIS-QoS-Parametern
Der Miniporttreiber, der NDIS Quality of Service (QoS) unterstützt, gibt eine NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE Statusanzeige aus, wenn die betriebsbereiten NDIS-QoS-Parameter des Treibers zum ersten Mal behoben oder später geändert werden. Der Miniporttreiber konfiguriert den Netzwerkadapter mit diesen Betriebsparametern, um die QoS-Paketübertragung durchzuführen.
Der Miniporttreiber muss die folgenden Richtlinien befolgen, um eine NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusanzeige auszustellen:
Der Miniporttreiber muss eine NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusangabe ausgeben, nachdem er seine operativen NDIS QoS-Parameter behoben und den Netzwerkadapter mit ihnen konfiguriert hat.
Note Wenn der Miniport-Treiber mit proprietären lokalen NDIS-QoS-Parametern in der Registrierung bereitgestellt wird, muss der Treiber einen NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Status unmittelbar nach dem Aufruf von MiniportInitializeEx ausgeben. In diesem Fall initialisiert der Treiber eine NDIS_QOS_PARAMETERS-Struktur mit seinen proprietären lokalen NDIS QoS-Parametereinstellungen.
Weitere Informationen dazu, wie der Treiber seine betriebsbereiten NDIS-QoS-Parametereinstellungen auflöst, finden Sie unter Auflösen betriebsbereiter NDIS-QoS-Parameter.
Nach dieser anfänglichen Statusanzeige sollte der Miniporttreiber eine NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusanzeige ausgeben, wenn seine betrieblichen NDIS QoS-Parameter geändert werden. Beispielsweise können sich die operativen NDIS QoS-Parameter unter den folgenden Bedingungen ändern:
Die operativen NDIS-QoS-Parameter ändern sich aufgrund von Änderungen an den lokalen NDIS QoS-Parametern. Diese Parameter können sich durch eine OID-Methodenanforderung von OID_QOS_PARAMETERS oder durch eine vom unabhängigen Hardwareanbieter (IHV) entwickelte Verwaltungsanwendung ändern.
Die operativen NDIS-QoS-Parameter ändern sich aufgrund von Konflikten mit den QoS-Einstellungen vom Remote-Peer.
Der Miniporttreiber verwendet das IEEE 802.1Qaz Data Center Bridging Exchange (DCBX)-Protokoll, um die QoS-Parameter für einen Remote-Peer zu ermitteln. Wenn der DCBX Willing-Zustand aktiviert ist, muss der Treiber die Unterschiede zwischen seinen QoS-Parametern und den QoS-Parametern des Remote-Peers beheben, indem er die für die DCBX-Zustands-Engine definierten Verfahren befolgt. Weitere Informationen zu diesem Zustandsmodul finden Sie im IEEE 802.1Qaz-Entwurfsstandard.
Weitere Informationen zum lokalen DCBX Willing-Zustand finden Sie unter Verwalten des lokalen DCBX Willing-Zustands.
Hinweis: Wenn der Miniport-Treiber lokale oder Remote-NDIS-QoS-Parameter empfängt, sollte er keine Statusanzeige NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ausgeben, wenn keine Änderungen an den betriebsbereiten NDIS-QoS-Parametern vorgenommen wurden. Wenn der Treiber diese unnötige Statusanzeige macht, gibt NDIS die Anzeige möglicherweise nicht an darüber liegende Treiber weiter.
Der Miniporttreiber sollte eine Statusanzeige NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE sausgeben, wenn er die lokalen NDIS-QoS-Parameter überschreiben muss, die zum Auflösen der operativen NDIS-QoS-Parameter verwendet wurden.
Der Miniporttreiber benachrichtigt NDIS und den überschriebenen Treiber über die lokalen NDIS-QoS-Parameter, indem eine NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE Statusanzeige ausgestellt wird. Für diese Art der Anzeige muss der Treiber die entsprechenden NDIS_QOS_PARAMETERS_Xxx_CHANGED-Flags im Flags-Element der NDIS_QOS_PARAMETERS Struktur setzen, um den Grund für das Überschreiben der lokalen NDIS-QoS-Parameter anzugeben.
Weitere Informationen dazu, wie der Miniporttreiber die lokalen QoS-Parameter verwaltet, finden Sie unter Festlegen lokaler NDIS-QoS-Parameter.
Weitere Informationen dazu, wie der Miniporttreiber seine betrieblichen QoS-Parameter aufgelöst, finden Sie unter Auflösung betrieblicher NDIS QoS-Parameter.
Hinweis: Der Miniport-Treiber muss NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusanzeigen ausgeben, wenn seine NDIS-QoS-Funktionen derzeit über das standardisierte INF-Schlüsselwort *QOS aktiviert sind. Weitere Informationen finden Sie unter Standardisierte INF-Schlüsselwörter für NDIS QoS.
Richtlinien für das Ausstellen der NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusanzeige
Der Miniporttreiber führt die folgenden Schritte aus, wenn er die NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE-Statusanzeige ausgibt:
Der Miniporttreiber weist einen Puffer zu, der groß genug ist, um Folgendes zu enthalten:
Eine NDIS_QOS_PARAMETERS Struktur, die die NDIS QoS-Konfigurationseinstellungen sowie globale Betriebsparameter für die NDIS QoS-Datenverkehrsklassen enthält.
Einen Array von NDIS_QOS_CLASSIFICATION_ELEMENT-Strukturen. Jede dieser Strukturen gibt eine Datenverkehrsklassifizierung gemäß Definition durch ein Paketdatenmuster (Bedingung) und die zugehörige IEEE 802.1p-Prioritätsstufe (Aktion) an. Wenn der Netzwerkadapter im Übertragungs- oder Ausgangs-Paket ein Muster findet, das einer Bedingung entspricht, weist er dem Paket die zugehörige Prioritätsstufe zu. Der Adapter wendet auch die anderen NDIS-QoS-Richtlinien auf das Paket basierend auf der Prioritätsebene an.
Der Miniport initialisiert die NDIS_QOS_PARAMETERS-Struktur mit den operativen NDIS QoS-Parametern. Der Treiber muss den vollständigen Satz von Betriebsparametern bereitstellen, einschließlich der Parameter, die möglicherweise nicht auf dem Netzwerkadapter konfiguriert werden.
Wenn der Miniporttreiber das ElementHeader initialisiert, setzt er das Element Typ von Header auf NDIS_OBJECT_TYPE_QOS_PARAMETERS. Der Miniport-Treiber setzt das Element Revision von Header uaf NDIS_QOS_PARAMETERS_REVISION_1 und das Element Size auf NDIS_SIZEOF_QOS_PARAMETERS_REVISION_1.
Der Miniporttreiber setzt die entsprechenden NDIS_QOS_PARAMETERS_Xxx_CHANGED-Flags im Element Flags, wenn die entsprechenden Elemente Daten enthalten, die sich geändert haben, seit der Miniporttreiber eine Statusanzeige NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE ausgegeben hat.
Hinweis : Das Festlegen der NDIS_QOS_PARAMETERS_Xxx_CHANGED-Flags ist optional. NDIS geht immer davon aus, dass die Elemente NDIS_QOS_PARAMETERS aktuell sind, auch wenn sie sich seit der vorherigen Statusanzeige NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE nicht geändert haben.
Weitere Informationen zum Festlegen des Flags-Elements finden Sie unter Richtlinien zum Festlegen des Flags-Elements.
Der Miniporttreiber initialisiert eine NDIS_QOS_CLASSIFICATION_ELEMENT-Struktur für jede Datenverkehrsklassifizierung aus den betrieblichen NDIS-QoS-Parametern. Der Treiber fügt diese Elemente am Ende der NDIS_QOS_PARAMETERS-Struktur im Puffer hinzu.
Hinweis: Der Miniporttreiber darf die NDIS_QOS_CLASSIFICATION_ENFORCED_BY_MINIPORT-Kennzeichnung nicht im Flags-Element beliebiger NDIS_QOS_CLASSIFICATION_ELEMENT- Strukturen festlegen.
Der Treiber setzt das Element NumClassificationElements der Struktur NDIS_QOS_PARAMETERS auf die Anzahl der Klassifizierungselemente im Array. Der Treiber legt das FirstClassificationElementOffset-Element auf den Byte-Offset des ersten Elements vom Anfang des Puffers fest. Der Treiber legt außerdem das ClassificationElementSize-Element auf die Länge jedes Elements im Array in Bytes fest.
Hinweis: Ab NDIS 6.30 muss der Miniporttreiber das ClassificationElementSize-Element auf
sizeof(NDIS_QOS_CLASSIFICATION_ELEMENT
festlegen).Der Miniporttreiber initialisiert eine NDIS_STATUS_INDICATION-Struktur für die Statusanzeige wie folgt:
Das StatusCode-Element muss auf NDIS_STATUS_QOS_OPERATIONAL_PARAMETERS_CHANGE festgelegt werden.
Das StatusBuffer-Element muss auf den Zeiger auf den Puffer festgelegt werden, der die operativen NDIS-QoS-Parameter enthält.
Das Element StatusBufferSize muss auf die Länge des Puffers in Bytes festgelegt werden.
Der Miniporttreiber gibt die Statusanzeige durch Aufrufen von NdisMIndicateStatusEx aus. Der Treiber muss einen Zeiger an die NDIS_STATUS_INDICATION-Struktur an den Parameter StatusIndication übergeben.
Richtlinien zum Festlegen des Flags-Elements
Der Miniporttreiber legt die folgenden Flags im Flags-Element der NDIS_QOS_PARAMETERS-Struktur fest, um anzugeben, welche betrieblichen NDIS QoS-Parameter für den Netzwerkadapter konfiguriert oder geändert wurden:
NDIS_QOS_PARAMETERS_ETS_CONFIGURED
Wenn dieses Flag festgelegt ist, hat der Miniporttreiber den Netzwerkadapter mit den ETS-Parametern konfiguriert, die in den folgenden Elementen enthalten sind:
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
Hinweis: Der Miniporttreiber muss ETS unterstützen, um NDIS QoS für DCB zu unterstützen. Die Einstellung dieses Flags gibt jedoch nicht an, ob der Netzwerkadapter ETS unterstützt. Stattdessen gibt die Einstellung dieses Flags nur an, ob ETS-Parameter auf dem Netzwerkadapter konfiguriert sind.
NDIS_QOS_PARAMETERS_ETS_CHANGED
Wenn dieses Flag festgelegt ist, haben sich mindestens ein ETS-Parameter in den folgenden Elementen geändert:
NumTrafficClasses
PriorityAssignmentTable
TcBandwidthAssignmentTable
TsaAssignmentTable
NDIS_QOS_PARAMETERS_PFC_CONFIGURED
Wenn dieses Flag festgelegt ist, hat der Miniporttreiber den Netzwerkadapter mit den PFC-Einstellungen im PfcEnable-Element konfiguriert.
Hinweis: Der Miniporttreiber muss PFC unterstützen, um NDIS QoS für DCB zu unterstützen. Die Einstellung dieses Flags gibt nicht an, ob der Netzwerkadapter PFC unterstützt. Stattdessen gibt die Einstellung dieses Flags lediglich an, ob PFC-Parameter auf dem Netzwerkadapter aktiviert sind.
NDIS_QOS_PARAMETERS_PFC_CHANGED
Wenn dieses Flag festgelegt ist, haben sich im PfcEnable-Element mindestens eine PFC-Einstellung geändert.
NDIS_QOS_PARAMETERS_CLASSIFICATION_CONFIGURED
Wenn dieses Flag festgelegt ist, hat der Miniporttreiber den Netzwerkadapter mit den Parametern für QoS-Datenverkehrsklassifizierungen konfiguriert, die in den folgenden Elementen angegeben sind:
NumClassificationElements
ClassificationElementSize
FirstClassificationElementOffset
NDIS_QOS_PARAMETERS_CLASSIFICATION_CHANGED
Wenn dieses Flag festgelegt ist, haben sich in den folgenden Elementen mindestens ein QoS-Datenverkehrsklassifizierungsparameter geändert:
NumClassificationElements
ClassificationElementSize
FirstClassificationElementOffset
Hinweis: Die Flags NDIS_QOS_PARAMETERS_Xxx_CONFIGURED müssen gesetzt werden, wenn die Struktur NDIS_QOS_PARAMETERS NDIS-QoS-Parametereinstellungen enthält. Der Miniporttreiber muss diese Flags unabhängig davon festlegen, ob sich die Einstellungen geändert haben. Der Treiber muss jedoch die NDIS_QOS_PARAMETERS_Xxx_CHANGED-Flags nur für die Einstellungen festlegen, die geändert wurden.