Gestion des stratégies de port
Les extensions de filtrage et de transfert de commutateur extensible Hyper-V peuvent être approvisionnées avec les propriétés des ports standard et personnalisés. Une fois provisionnée, ces extensions appliquent les stratégies lorsqu’elles filtrent les paquets obtenus sur le chemin des données d’entrée du commutateur extensible. Pour plus d’informations sur ces stratégies, consultez Stratégies de port.
L’interface de commutateur extensible Hyper-V utilise les identificateurs d’objet (OID) suivants pour approvisionner des extensions de filtrage et de transfert avec les propriétés des stratégies de port standard et personnalisées :
OID_SWITCH_PORT_PROPERTY_ADD
Cette demande de jeu d’OID est émise par le bord du protocole du commutateur extensible pour notifier les extensions sous-jacentes de l’ajout d’une propriété au niveau de la couche de gestion WMI. InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
Note Les propriétés de port personnalisées sont spécifiées par une valeur d’énumération NDIS_SWITCH_PORT_PROPERTY_TYPE de NdisSwitchPortPropertyTypeCustom. Les propriétés de port standard sont spécifiées par une valeur d’énumération NDIS_SWITCH_PORT_PROPERTY_TYPEde NdisSwitchPortPropertyTypeSecurity, NdisSwitchPortPropertyTypeVlan et NdisSwitchPortPropertyTypeProfile.
OID_SWITCH_PORT_PROPERTY_UPDATE
Cette demande de jeu OID est émise par le bord du protocole du commutateur extensible pour informer les extensions sous-jacentes de la mise à jour d’une propriété au niveau de la couche de gestion WMI. InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_SWITCH_PORT_PROPERTY_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_DELETE
Cette demande de jeu OID est émise par le bord du protocole du commutateur extensible pour informer les extensions sous-jacentes de la suppression d’une propriété au niveau de la couche de gestion WMI. L’objet InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS.
OID_SWITCH_PORT_PROPERTY_ENUM
Cette demande de méthode OID est envoyée par l’extension pour interroger le bord miniport sous-jacent du commutateur extensible sur les propriétés actuellement configurées pour un port spécifié sur le commutateur extensible. L’objet InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une mémoire tampon. Cette mémoire tampon contient les données suivantes :
Une structure NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS qui spécifie les paramètres de l’énumération de stratégie d’un port spécifié.
Tableau de structures NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO . Chacune de ces structures contient des informations sur les propriétés d’une stratégie de port de commutateur extensible.
Note Si le membre NumProperties de la structure NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS est défini sur zéro, aucune structure NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO n’est retournée.
Note L’extension ne doit pas provenir des requêtes de jeu OID de OID_SWITCH_PORT_PROPERTY_ADD. OID_SWITCH_PORT_PROPERTY_UPDATE ou OID_SWITCH_PORT_PROPERTY_DELETE.
L’extension de commutateur extensible doit suivre ces instructions lorsqu’elle gère une demande de jeu OID de OID_SWITCH_PORT_PROPERTY_ADD, OID_SWITCH_PORT_PROPERTY_UPDATE ou OID_SWITCH_PORT_PROPERTY_DELETE :
L’extension ne doit pas modifier la structure NDIS_SWITCH_PORT_PROPERTY_PARAMETERS ou NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS associée à la requête OID.
L’extension doit gérer ces requêtes OID si l’extension gère la propriété. En fonction de la demande OID, l’extension doit inspecter les membres suivants des structures NDIS_SWITCH_PORT_PROPERTY_PARAMETERS ou NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS pour déterminer si elle gère la propriété de port :
Membre PropertyType . Ce membre spécifie le type de la propriété de port. Les propriétés de port personnalisées ont une valeur de membre PropertyTypede NdisSwitchPortPropertyTypeCustom. Les propriétés de port standard ont d’autres valeurs de type de propriété. Par exemple, les stratégies de port VLAN standard ont une valeur de type de propriété NdisSwitchPortPropertyTypeVlan.
Membre PropertyId . Ce membre spécifie une valeur GUID propriétaire pour une propriété de port personnalisée. Cette valeur GUID est créée par le fournisseur de logiciels indépendant (ISV) qui définit également le format de la propriété de commutateur extensible personnalisée.
Note L’extension doit ignorer ce membre pour les stratégies de port standard.
L’extension doit gérer une demande de jeu de OID_SWITCH_PORT_PROPERTY_UPDATE si l’extension a été précédemment approvisionnée avec une propriété de port qui correspond aux membres suivants de la structure NDIS_SWITCH_PROPERTY_PARAMETERS :
Membre PropertyType .
Membre PropertyId .
Note L’extension doit ignorer ce membre pour les stratégies de port standard.
Membre PropertyVersion . Ce membre spécifie la version de la propriété de port avec laquelle l’extension a été approvisionnée.
Membre PropertyInstanceId . Ce membre spécifie le instance de la propriété de port avec laquelle l’extension a été approvisionnée.
L’extension de filtrage ou de transfert peut opposer son veto à l’ajout ou à la mise à jour d’une stratégie de port qu’elle gère. Pour ce faire, l’extension termine la demande OID avec STATUS_DATA_NOT_ACCEPTED.
Note La capture d’extensions ne doit pas opposer son veto à l’ajout ou à la mise à jour d’une stratégie de port. Au lieu de cela, il doit transférer la requête OID vers le chemin de contrôle du commutateur extensible.
Une extension de transfert peut échouer la demande OID pour les propriétés de port standard qu’elle ne prend pas en charge ou si la propriété est en conflit avec sa propre configuration de stratégie. Dans ce cas, l’extension doit terminer la demande OID et retourner le code NDIS status approprié pour signaler l’échec.
Si l’extension gère correctement la demande d’ensemble OID pour une stratégie de port standard, elle ne doit pas terminer la requête OID et doit la transférer vers le chemin de contrôle du commutateur extensible.
Si l’extension de capture ou de filtrage gère correctement la demande de jeu OID pour une stratégie de port personnalisée, elle ne doit pas terminer la requête OID et doit la transférer vers le bas du chemin de contrôle de commutateur extensible.
Si l’extension de transfert gère correctement la demande d’ensemble OID pour une stratégie de port personnalisée, elle doit terminer la requête OID et retourner la valeur NDIS_STATUS_Xxx appropriée.
Si l’extension ne termine pas la demande de jeu OID, elle doit appeler NdisFOidRequest pour transférer la requête OID vers le bas de la pile de pilotes de commutateur extensible. Dans ce cas, les extensions doivent surveiller la status d’achèvement de l’OID pour détecter si une extension sous-jacente a échoué à la requête OID.