Gestion des stratégies de basculement
Les extensions de filtrage et de transfert de commutateur extensible Hyper-V peuvent être approvisionnées avec les propriétés des propriétés de commutateur personnalisées. 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 Changer de stratégie.
L’interface de commutateur extensible Hyper-V utilise les identificateurs d’objet (OID) suivants pour provisionner des extensions de filtrage et de transfert avec les propriétés des stratégies de commutateur personnalisées :
OID_SWITCH_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_PROPERTY_PARAMETERS.
Note Les propriétés de commutateur personnalisées sont spécifiées par une valeur d’énumération NDIS_SWITCH_PROPERTY_TYPE de NdisSwitchPropertyTypeCustom.
OID_SWITCH_PROPERTY_UPDATE
Cette demande de jeu OID est émise par le bord du protocole du commutateur extensible pour notifier 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_PROPERTY_PARAMETERS.
OID_SWITCH_PROPERTY_DELETE
Cette demande de jeu OID est émise par le bord du protocole du commutateur extensible pour notifier 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_PROPERTY_DELETE_PARAMETERS.
OID_SWITCH_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 du commutateur extensible actuellement configurées 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_PROPERTY_ENUM_PARAMETERS qui spécifie les paramètres de l’énumération de propriété d’une stratégie de commutateur.
Tableau de structures NDIS_SWITCH_PROPERTY_ENUM_INFO . Chacune de ces structures contient des informations sur les propriétés d’une stratégie de commutateur.
Note Si le membre NumProperties de la structure NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS est défini sur zéro, aucune structure NDIS_SWITCH_PROPERTY_ENUM_INFO n’est retournée.
Note L’extension ne doit pas provenir des requêtes de jeu OID de OID_SWITCH_PROPERTY_ADD. OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE.
L’extension de commutateur extensible doit suivre ces instructions lorsqu’elle gère une demande de jeu OID de OID_SWITCH_PROPERTY_ADD, OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE :
L’extension ne doit pas modifier la structure NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS associée à la requête OID.
L’extension doit gérer une OID_SWITCH_PROPERTY_UPDATE ou OID_SWITCH_PROPERTY_DELETE demande de jeu si l’extension a été précédemment approvisionnée avec une propriété switch qui correspond aux membres suivants de la structure NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS :
Membre PropertyType qui spécifie le type de propriété switch.
Note À compter de NDIS 6.30, seules les propriétés de commutateur de NdisSwitchPropertyTypeCustom sont spécifiées par les structures NDIS_SWITCH_PROPERTY_PARAMETERS ou NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS .
Membre PropertyId qui spécifie une valeur GUID propriétaire que l’extension reconnaît. 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 stratégie de commutateur extensible personnalisée.
Note Une propriété de stratégie de commutateur extensible personnalisée est contenue dans une structure de NDIS_SWITCH_PROPERTY_CUSTOM .
Si l’extension gère ces demandes de jeu d’OID, l’extension doit mettre à jour ou supprimer la stratégie de commutateur qui correspond aux membres suivants de la structure NDIS_SWITCH_PROPERTY_PARAMETERS :
Membre PropertyVersion qui spécifie la version de la stratégie de commutateur extensible.
Membre PropertyInstanceId qui spécifie le instance de la stratégie de commutateur extensible.
Si les valeurs de ces membres ne correspondent pas à une propriété de stratégie de commutateur pour laquelle l’extension a été précédemment provisionnée, l’extension doit échouer à la demande de jeu OID avec NDIS_STATUS_INVALID_PARAMETER. Sinon, l’extension doit terminer la demande de jeu OID et retourner NDIS_STATUS_SUCCESS.
L’extension de filtrage ou de transfert peut opposer son veto à l’ajout, à la suppression ou à la mise à jour d’une stratégie de commutateur. 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 commutateur. Au lieu de cela, il doit transférer la requête OID 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 commutateur 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 de jeu OID pour une stratégie de commutateur 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.