Verwalten von Portrichtlinien

Hyper-V erweiterbare Switchfilterungs- und Weiterleitungserweiterungen können mit den Eigenschaften der Standard- und benutzerdefinierten Porteigenschaften bereitgestellt werden. Nach der Bereitstellung erzwingen diese Erweiterungen die Richtlinien, wenn sie Pakete filtern, die für den erweiterbaren Switch-Eingangsdatenpfad abgerufen wurden. Weitere Informationen zu diesen Richtlinien finden Sie unter Portrichtlinien.

Die erweiterbare Hyper-V-Switch-Schnittstelle verwendet die folgenden Objektbezeichner (Object Identifiers, OIDs), um Filter- und Weiterleitungserweiterungen mit den Eigenschaften von Standard- und benutzerdefinierten Portrichtlinien bereitzustellen:

OID_SWITCH_PORT_PROPERTY_ADD
Diese Anforderung für den OID-Satz wird vom Protokollrand des erweiterbaren Switches ausgegeben, um zugrunde liegende Erweiterungen über das Hinzufügen einer Eigenschaft auf der WMI-Verwaltungsebene zu benachrichtigen. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_PORT_PROPERTY_PARAMETERS-Struktur .

Hinweis Benutzerdefinierte Porteigenschaften werden durch einen NDIS_SWITCH_PORT_PROPERTY_TYPE Enumerationswert von NdisSwitchPortPropertyTypeCustom angegeben. Standardporteigenschaften werden durch einen NDIS_SWITCH_PORT_PROPERTY_TYPE Enumerationswert von NdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlan und NdisSwitchPortPropertyTypeProfile angegeben.

OID_SWITCH_PORT_PROPERTY_UPDATE
Diese Anforderung für den OID-Satz wird vom Protokollrand des erweiterbaren Switches ausgegeben, um zugrunde liegende Erweiterungen über die Aktualisierung einer Eigenschaft auf der WMI-Verwaltungsebene zu informieren. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_PORT_PROPERTY_PARAMETERS-Struktur .

OID_SWITCH_PORT_PROPERTY_DELETE
Diese Anforderung für den OID-Satz wird vom Protokollrand des erweiterbaren Switches ausgegeben, um zugrunde liegende Erweiterungen über das Löschen einer Eigenschaft auf der WMI-Verwaltungsebene zu informieren. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS-Struktur .

OID_SWITCH_PORT_PROPERTY_ENUM
Diese OID-Methodenanforderung wird von der Erweiterung gesendet, um den zugrunde liegenden Miniportrand des erweiterbaren Switches über die aktuell konfigurierten Eigenschaften für einen angegebenen Port auf dem erweiterbaren Switch abzufragen. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf einen Puffer. Dieser Puffer enthält die folgenden Daten:

Hinweis Die Erweiterung darf keine OID-Satzanforderungen von OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATE oder OID_SWITCH_PORT_PROPERTY_DELETE.

Die erweiterbare Switcherweiterung muss die folgenden Richtlinien befolgen, wenn sie eine OID-Satzanforderung von OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE oder OID_SWITCH_PORT_PROPERTY_DELETE verarbeitet:

  • Die Erweiterung darf die NDIS_SWITCH_PORT_PROPERTY_PARAMETERS oder NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS Struktur, die der OID-Anforderung zugeordnet ist, nicht ändern.

  • Die Erweiterung muss diese OID-Anforderungen verarbeiten, wenn die Erweiterung die Eigenschaft verwaltet. Abhängig von der OID-Anforderung muss die Erweiterung die folgenden Elemente der NDIS_SWITCH_PORT_PROPERTY_PARAMETERS - oder NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS-Strukturen überprüfen, um zu ermitteln, ob sie die Porteigenschaft verwaltet:

    • Das PropertyType-Element . Dieses Element gibt den Typ der Porteigenschaft an. Benutzerdefinierte Porteigenschaften weisen den PropertyType-MemberwertNdisSwitchPortPropertyTypeCustom auf. Standardporteigenschaften verfügen über andere Eigenschaftstypwerte. Beispielsweise weisen VLAN-Standardportrichtlinien den Eigenschaftstypwert NdisSwitchPortPropertyTypeVlan auf.

    • Das PropertyId-Element . Dieses Member gibt einen proprietären GUID-Wert für eine benutzerdefinierte Porteigenschaft an. Dieser GUID-Wert wird vom unabhängigen Softwareanbieter (Independent Software Vendor, ISV) erstellt, der auch das Format der benutzerdefinierten erweiterbaren Switch-Eigenschaft definiert.

      Hinweis Die Erweiterung muss diesen Member für Standardportrichtlinien ignorieren.

  • Die Erweiterung muss eine OID_SWITCH_PORT_PROPERTY_UPDATE-Set-Anforderung verarbeiten, wenn die Erweiterung zuvor mit einer Porteigenschaft bereitgestellt wurde, die den folgenden Elementen der NDIS_SWITCH_PROPERTY_PARAMETERS-Struktur entspricht:

    • Das PropertyType-Element .

    • Das PropertyId-Element .

      Hinweis Die Erweiterung muss diesen Member für Standardportrichtlinien ignorieren.

    • Das PropertyVersion-Element . Dieses Element gibt die Version der Porteigenschaft an, mit der die Erweiterung bereitgestellt wurde.

    • Das PropertyInstanceId-Element . Dieses Element gibt die instance der Porteigenschaft an, mit der die Erweiterung bereitgestellt wurde.

  • Die Filter- oder Weiterleitungserweiterung kann gegen das Hinzufügen oder Aktualisieren einer von ihr verwalteten Portrichtlinie ein Veto einwenden. Die Erweiterung erledigt dies, indem sie die OID-Anforderung mit STATUS_DATA_NOT_ACCEPTED abschließt.

    Hinweis Erfassungserweiterungen dürfen kein Veto gegen das Hinzufügen oder Aktualisieren einer Portrichtlinie einzulegen. Stattdessen muss die OID-Anforderung über den erweiterbaren Switchsteuerungspfad weitergeleitet werden.

  • Bei einer Weiterleitungserweiterung kann die OID-Anforderung für Standardporteigenschaften fehlschlagen, die nicht unterstützt werden, oder wenn die Eigenschaft mit ihrer eigenen Richtlinienkonfiguration in Konflikt steht. In diesem Fall muss die Erweiterung die OID-Anforderung abschließen und den entsprechenden NDIS-status Code zurückgeben, um den Fehler zu melden.

  • Wenn die Erweiterung die OID-Setanforderung für eine Standardportrichtlinie erfolgreich verarbeitet, darf sie die OID-Anforderung nicht abschließen und muss sie über den erweiterbaren Switchsteuerungspfad weiterleiten.

  • Wenn die Erfassungs- oder Filtererweiterung die OID-Setanforderung für eine benutzerdefinierte Portrichtlinie erfolgreich verarbeitet, darf sie die OID-Anforderung nicht abschließen und muss sie über den erweiterbaren Switchsteuerungspfad weiterleiten.

    Wenn die Weiterleitungserweiterung die OID-Set-Anforderung für eine benutzerdefinierte Portrichtlinie erfolgreich verarbeitet, muss sie die OID-Anforderung abschließen und den entsprechenden NDIS_STATUS_Xxx-Wert zurückgeben.

  • Wenn die Erweiterung die OID-Setanforderung nicht erfüllt, muss sie NdisFOidRequest aufrufen, um die OID-Anforderung über den erweiterbaren Switchtreiberstapel weiterzuleiten. In diesem Fall sollten die Erweiterungen die Vervollständigung status der OID überwachen, um zu erkennen, ob bei einer zugrunde liegenden Erweiterung ein Fehler bei der OID-Anforderung aufgetreten ist.