Administración de directivas de conmutador

Las extensiones de filtrado y reenvío extensible de Hyper-V se pueden aprovisionar con las propiedades de las propiedades de conmutador personalizadas. Una vez aprovisionadas, estas extensiones aplican las directivas cuando filtran los paquetes obtenidos en la ruta de acceso de datos de entrada extensible del conmutador. Para obtener más información sobre estas directivas, vea Cambiar directivas.

La interfaz de conmutador extensible de Hyper-V usa los siguientes identificadores de objeto (OID) para aprovisionar extensiones de filtrado y reenvío con las propiedades de las directivas de conmutador personalizadas:

OID_SWITCH_PROPERTY_ADD
Esta solicitud de conjunto de OID se emite mediante el borde del protocolo del conmutador extensible para notificar a las extensiones subyacentes la adición de una propiedad en el nivel de administración de WMI. InformationBuffer de la estructura de NDIS_OID_REQUEST contiene un puntero a una estructura NDIS_SWITCH_PROPERTY_PARAMETERS.

Nota Las propiedades de conmutador personalizadas se especifican mediante un valor de enumeración NDIS_SWITCH_PROPERTY_TYPE de NdisSwitchPropertyTypeCustom.

OID_SWITCH_PROPERTY_UPDATE
Esta solicitud de conjunto de OID se emite mediante el borde del protocolo del conmutador extensible para notificar a las extensiones subyacentes la actualización de una propiedad en el nivel de administración de WMI. InformationBuffer de la estructura de NDIS_OID_REQUEST contiene un puntero a una estructura NDIS_SWITCH_PROPERTY_PARAMETERS.

OID_SWITCH_PROPERTY_DELETE
Esta solicitud de conjunto de OID se emite mediante el borde del protocolo del conmutador extensible para notificar a las extensiones subyacentes la eliminación de una propiedad en el nivel de administración de WMI. InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura de NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS.

OID_SWITCH_PROPERTY_ENUM
La extensión envía esta solicitud de método OID para consultar el borde de minipuerto subyacente del conmutador extensible sobre las propiedades del conmutador configuradas actualmente en el conmutador extensible. El informationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a un búfer. Este búfer contiene los datos siguientes:

Nota La extensión no debe originar solicitudes de conjunto de OID de OID_SWITCH_PROPERTY_ADD. OID_SWITCH_PROPERTY_UPDATE o OID_SWITCH_PROPERTY_DELETE.

La extensión de conmutador extensible debe seguir estas instrucciones cuando controla una solicitud de conjunto de OID de OID_SWITCH_PROPERTY_ADD, OID_SWITCH_PROPERTY_UPDATE o OID_SWITCH_PROPERTY_DELETE:

  • La extensión no debe modificar la estructura NDIS_SWITCH_PROPERTY_PARAMETERS o NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS asociada a la solicitud OID.

  • La extensión debe controlar una solicitud OID_SWITCH_PROPERTY_UPDATE o OID_SWITCH_PROPERTY_DELETE establecer si la extensión se ha aprovisionado previamente con una propiedad switch que coincida con los siguientes miembros de la estructura NDIS_SWITCH_PROPERTY_PARAMETERS o NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS :

    • El miembro PropertyType que especifica el tipo de propiedad switch.

      Nota A partir de NDIS 6.30, solo las propiedades switch de NdisSwitchPropertyTypeCustom se especifican mediante las estructuras NDIS_SWITCH_PROPERTY_PARAMETERS o NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS .

    • El miembro PropertyId que especifica un valor GUID propietario que reconoce la extensión. Este valor GUID lo crea el proveedor de software independiente (ISV) que también define el formato de la propiedad de directiva de conmutador extensible personalizada.

      Nota Una propiedad de directiva de conmutador extensible personalizada se encuentra dentro de una estructura de NDIS_SWITCH_PROPERTY_CUSTOM .

  • Si la extensión controla estas solicitudes de conjunto de OID, la extensión debe actualizar o eliminar la directiva switch que coincida con los siguientes miembros de la estructura de NDIS_SWITCH_PROPERTY_PARAMETERS :

    • El miembro PropertyVersion que especifica la versión de la directiva de conmutador extensible.

    • El miembro PropertyInstanceId que especifica la instancia de la directiva de conmutador extensible.

    Si los valores de estos miembros no coinciden con una propiedad de directiva de modificador para la que se ha aprovisionado previamente la extensión, la extensión debe producir un error en la solicitud de establecimiento de OID con NDIS_STATUS_INVALID_PARAMETER. De lo contrario, la extensión debe completar la solicitud de establecimiento de OID y devolver NDIS_STATUS_SUCCESS.

  • La extensión de filtrado o reenvío puede vetar la adición, eliminación o actualización de una directiva de conmutador. La extensión lo hace completando la solicitud de OID con STATUS_DATA_NOT_ACCEPTED.

    Nota La captura de extensiones no debe vetar la adición o actualización de una directiva de conmutador. En su lugar, debe reenviar la solicitud OID hacia abajo en la ruta de acceso de control de conmutador extensible.

  • Si la extensión de captura o filtrado controla correctamente la solicitud de establecimiento de OID para una directiva de conmutador personalizada, no debe completar la solicitud OID y debe reenviarla hacia abajo en la ruta de acceso de control de conmutador extensible.

    Si la extensión de reenvío controla correctamente la solicitud de establecimiento de OID para una directiva de conmutador personalizada, debe completar la solicitud OID y devolver el valor NDIS_STATUS_Xxx adecuado.

  • Si la extensión no completa la solicitud de establecimiento de OID, debe llamar a NdisFOidRequest para reenviar la solicitud OID a la pila extensible del controlador del conmutador. En este caso, las extensiones deben supervisar el estado de finalización del OID para detectar si una extensión subyacente ha producido un error en la solicitud de OID.