Verwalten von Switchrichtlinien

Die Filterung und Weiterleitung von Hyper-V-erweiterbaren Switch-Erweiterungen kann mit den Eigenschaften benutzerdefinierter Switcheigenschaften 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 Wechseln von Richtlinien.

Die erweiterbare Hyper-V-Switch-Schnittstelle verwendet die folgenden Objektbezeichner (Object Identifiers, OIDs), um Filterungs- und Weiterleitungserweiterungen mit den Eigenschaften benutzerdefinierter Switchrichtlinien bereitzustellen:

OID_SWITCH_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_PROPERTY_PARAMETERS-Struktur .

Hinweis Benutzerdefinierte Switcheigenschaften werden durch einen NDIS_SWITCH_PROPERTY_TYPE Enumerationswert von NdisSwitchPropertyTypeCustom angegeben.

OID_SWITCH_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 benachrichtigen. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_PROPERTY_PARAMETERS-Struktur .

OID_SWITCH_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 benachrichtigen. Der InformationBuffer der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS-Struktur .

OID_SWITCH_PROPERTY_ENUM
Diese OID-Methodenanforderung wird von der Erweiterung gesendet, um den zugrunde liegenden Miniportrand des erweiterbaren Switches über die aktuell konfigurierten Switcheigenschaften des erweiterbaren Switches 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_PROPERTY_ADD. OID_SWITCH_PROPERTY_UPDATE oder OID_SWITCH_PROPERTY_DELETE.

Die erweiterbare Switcherweiterung muss die folgenden Richtlinien befolgen, wenn sie eine OID-Satzanforderung von OID_SWITCH_PROPERTY_ADD, OID_SWITCH_PROPERTY_UPDATE oder OID_SWITCH_PROPERTY_DELETE verarbeitet:

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

  • Die Erweiterung muss eine OID_SWITCH_PROPERTY_UPDATE- oder OID_SWITCH_PROPERTY_DELETE-Set-Anforderung verarbeiten, wenn die Erweiterung zuvor mit einer Switch-Eigenschaft bereitgestellt wurde, die den folgenden Membern der NDIS_SWITCH_PROPERTY_PARAMETERS- oder NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS-Struktur entspricht:

    • Das PropertyType-Element , das den Typ der Switch-Eigenschaft angibt.

      Hinweis Ab NDIS 6.30 werden nur Switcheigenschaften von NdisSwitchPropertyTypeCustom durch die NDIS_SWITCH_PROPERTY_PARAMETERS - oder NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS-Strukturen angegeben.

    • Das PropertyId-Element , das einen proprietären GUID-Wert angibt, den die Erweiterung erkennt. Dieser GUID-Wert wird vom unabhängigen Softwareanbieter (Independent Software Vendor, ISV) erstellt, der auch das Format der benutzerdefinierten erweiterbaren Switch-Richtlinieneigenschaft definiert.

      Hinweis Eine benutzerdefinierte erweiterbare Switchrichtlinieneigenschaft ist in einer NDIS_SWITCH_PROPERTY_CUSTOM-Struktur enthalten.

  • Wenn die Erweiterung diese OID-Setanforderungen verarbeitet, muss die Erweiterung die Switchrichtlinie aktualisieren oder löschen, die den folgenden Elementen der NDIS_SWITCH_PROPERTY_PARAMETERS-Struktur entspricht:

    • Das PropertyVersion-Element , das die Version der erweiterbaren Switchrichtlinie angibt.

    • Das PropertyInstanceId-Element, das die instance der erweiterbaren Switchrichtlinie angibt.

    Wenn die Werte dieser Member nicht mit einer Switch-Richtlinieneigenschaft übereinstimmen, für die die Erweiterung zuvor bereitgestellt wurde, muss die Erweiterung die OID-Set-Anforderung mit NDIS_STATUS_INVALID_PARAMETER. Andernfalls muss die Erweiterung die OID-Setanforderung abschließen und NDIS_STATUS_SUCCESS zurückgeben.

  • Die Filter- oder Weiterleitungserweiterung kann gegen das Hinzufügen, Löschen oder Aktualisieren einer Switch-Richtlinie ein Veto einwenden. Die Erweiterung erledigt dies, indem sie die OID-Anforderung mit STATUS_DATA_NOT_ACCEPTED abschließt.

    Hinweis Das Erfassen von Erweiterungen darf kein Veto gegen das Hinzufügen oder Aktualisieren einer Switch-Richtlinie einzulegen. Stattdessen muss die OID-Anforderung über den erweiterbaren Switchsteuerungspfad weitergeleitet werden.

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

    Wenn die Weiterleitungserweiterung die OID-Setanforderung für eine benutzerdefinierte Switchrichtlinie 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.