Ändern der Extensible Switch-Quellportdaten eines Pakets
Der erweiterbare Hyper-V-Switch-Quellport wird vom SourcePortId-Member in der NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO-Struktur angegeben. Diese Struktur ist im Out-of-Band-Weiterleitungskontext (OOB) der NET_BUFFER_LIST Struktur des Pakets enthalten. Weitere Informationen zu diesem Kontext finden Sie unter Hyper-V Extensible Switch Forwarding Context.
Die erweiterbare Switcherweiterung muss die folgenden Richtlinien zum Ändern des Quellportbezeichners eines Pakets befolgen:
Die erweiterbare Switch-Erweiterung muss SetNetBufferListSource aufrufen, um den Quellport für ein Paket zu ändern. Die Erweiterung darf das SourcePortId-Element der NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO-Struktur nicht direkt ändern.
Wenn die Erweiterung ein Paket erstellt oder klont, muss sie die Funktion AllocateNetBufferListForwardingContext aufrufen, nachdem sie NdisAllocateNetBufferList aufgerufen hat. Diese Funktion weist einen erweiterbaren Switchkontextbereich für die OOB-Daten zu, die zum Weiterleiten von Informationen für das Paket verwendet werden.
Wenn die Erweiterung AllocateNetBufferListForwardingContext aufruft, wird das SourcePortId-Element auf NDIS_SWITCH_DEFAULT_PORT_ID festgelegt. Dies gibt an, dass das Paket von einer Erweiterung stammt, anstatt an einem erweiterbaren Switchport anzukommen.
Pakete mit einem Quellport von NDIS_SWITCH_DEFAULT_PORT_ID werden vom erweiterbaren Datenpfad der Switcherweiterung als privilegiert und vertrauenswürdig behandelt. Dieser Datenverkehr sollte nicht den Richtlinien unterliegen, die auf Pakete von anderen Quellports angewendet werden. Beispielsweise umgehen Pakete mit dem Quellportbezeichner NDIS_SWITCH_DEFAULT_PORT_ID die integrierten erweiterbaren Switchrichtlinien, die vom zugrunde liegenden Miniport-Edge des erweiterbaren Switches angewendet werden. Diese Richtlinien umfassen Zugriffssteuerungslisten (AcLs) und Quality of Service (QoS).
Wenn die Erweiterung Paketdatenverkehr ausgibt, sollte sie den Quellport von NDIS_SWITCH_DEFAULT_PORT_ID sparsam und sorgfältig verwenden. In den meisten Fällen sollte die Erweiterung den Quellportbezeichner in einen aktiven Port auf dem erweiterbaren Switch ändern. Dadurch können die Richtlinien dieses Ports auf das Paket angewendet werden.
Es kann jedoch situationen geben, in denen die Erweiterung den Quellport von NDIS_SWITCH_DEFAULT_PORT_ID für Pakete verwenden muss, die von ihr stammen. Wenn die Erweiterung beispielsweise ein Steuerungspaket entstammt, das an ihr Ziel im physischen oder virtuellen Netzwerk gesendet werden muss, sollte sie NDIS_SWITCH_DEFAULT_PORT_ID für den Quellportbezeichner verwenden. Dadurch wird sichergestellt, dass das Paket nicht von zugrunde liegenden Erweiterungen im erweiterbaren Switchtreiberstapel gefiltert und abgelehnt wird.