Compartir a través de


Control de la solicitud de OID_NIC_SWITCH_CREATE_SWITCH

NDIS emite una solicitud de método de identificador de objeto (OID) OID_NIC_SWITCH_CREATE_SWITCH para hacer lo siguiente:

  • Habilitar un conmutador NIC en un adaptador de red creado estáticamente por el controlador de minipuerto para la función física PCI Express (PCIe) (PF). La PF es un componente de hardware del adaptador de red que admite la virtualización de E/S raíz única (SR-IOV).

    El controlador de minipuerto de PF crea estáticamente un conmutador NIC desde el contexto hasta la llamada a MiniportInitializeEx. El controlador asigna los recursos y crea el modificador en función de los parámetros leídos de la configuración del Registro.

  • Crear dinámicamente un conmutador NIC en un adaptador de red.

    Si el controlador de minipuerto de PF no admite la creación de conmutadores NIC estáticos, el controlador de minipuerto asigna los recursos y crea el conmutador en función de los parámetros especificados en la solicitud OID.

El controlador de minipuerto de PF anuncia su compatibilidad con la interfaz SR-IOV cuando NDIS llama a la función MiniportInitializeEx del controlador. Si el controlador de minipuerto de PF admite SR-IOV, NDIS lee la configuración del conmutador NIC del registro. Antes de que NDIS emita una solicitud de método OID OID_NIC_SWITCH_CREATE_SWITCH al controlador de minipuerto de PF, NDIS da formato a una estructura NDIS_NIC_SWITCH_PARAMETERS con la información del Registro de la siguiente manera:

  • NDIS establece el miembro SwitchType con el tipo del conmutador NIC.

    A partir de Windows Server 2012, Windows solo admite un tipo de conmutador de NdisNicSwitchTypeExternal. Un conmutador externo especifica que los puertos virtuales (VPorts) que están conectados a este tipo de conmutador pueden acceder a la red externa a través del puerto físico del adaptador de red.

    Para obtener más información sobre el conmutador NIC, consulte Arquitectura de SR-IOV.

  • NDIS establece el miembro SwitchId con un valor de identificador para el conmutador NIC. El identificador del conmutador es un entero entre cero y el número de conmutadores que admite el adaptador de red. Un valor de NDIS_DEFAULT_SWITCH_ID indica el modificador NIC predeterminado.

    Nota A partir de Windows Server 2012, la interfaz SR-IOV solo admite el conmutador NIC predeterminado en el adaptador de red.

  • NDIS establece el miembro NumVFs que especifica el número de funciones virtuales (VF) PCIe que se pueden asignar en el conmutador NIC.

Cuando recibe la solicitud del método OID OID_NIC_SWITCH_CREATE_SWITCH, el controlador de minipuerto de PF debe hacer lo siguiente:

  1. Si el controlador de minipuerto de PF admite la creación y configuración de conmutadores estáticos, crea el conmutador NIC cuando NDIS llama a MiniportInitializeEx. Cuando el controlador controla esta solicitud de OID, debe comprobar los parámetros de configuración en la estructura NDIS_NIC_SWITCH_PARAMETERS. Los parámetros deben ser los mismos que los usados por el controlador para crear el modificador durante la llamada a MiniportInitializeEx. Si esto no es cierto, el controlador debe producir un error en la solicitud OID.

    Para obtener más información, consulte Creación estática de un conmutador NIC.

  2. Si el controlador de minipuerto de PF admite la creación y configuración dinámicas del conmutador, el controlador debe validar los valores de configuración de la estructura NDIS_NIC_SWITCH_PARAMETERS y crear el conmutador NIC en función de estos valores.

    Para obtener más información, consulte Creación dinámica de un conmutador NIC.

  3. El controlador de minipuerto de PF debe asignar los recursos de hardware y software necesarios para el VPort predeterminado en el conmutador NIC.

    Nota El VPort predeterminado siempre se crea a través de una solicitud OID de OID_NIC_SWITCH_CREATE_SWITCH y se elimina a través de una solicitud OID de OID_NIC_SWITCH_DELETE_SWITCH. Las solicitudes OID de OID_NIC_SWITCH_CREATE_VPORT y OID_NIC_SWITCH_DELETE_VPORT se usan para la creación y eliminación de VPorts no predeterminados en el conmutador NIC.

  4. El controlador de minipuerto de PF que admite la creación y configuración dinámicas de conmutadores debe habilitar la virtualización SR-IOV en el conmutador llamando a NdisMEnableVirtualization. Esta llamada configura el miembro NumVFs y el bit VF Enable en la estructura de funcionalidad extendida SR-IOV del espacio de configuración PCI Express (PCIe) del adaptador.

    Para obtener más información sobre el espacio de configuración SR-IOV, consulte la especificación Virtualización de E/S de raíz única PCI-SIG y uso compartido 1.1 de PCI-SIG.

    Nota Si el controlador de minipuerto de PF admite la creación de conmutadores estáticos, habilita la virtualización SR-IOV después de crear el conmutador cuando se llama a MiniportInitializeEx.

Si el controlador de minipuerto de PF completa correctamente la solicitud del método OID OID_NIC_SWITCH_CREATE_SWITCH, permite que se produzca lo siguiente:

  • Las VF se pueden asignar en el conmutador NIC a través de solicitudes de método OID OID_NIC_SWITCH_ALLOCATE_VF.

  • Se pueden crear VPorts no predeterminados en el conmutador NIC a través de solicitudes de método OID OID_NIC_SWITCH_CREATE_VPORT.

    El controlador de minipuerto es responsable de administrar su grupo de VPorts no predeterminados. El controlador especifica el número de VPorts no predeterminados de su grupo a través del miembro NumVPorts de la estructura NDIS_NIC_SWITCH_INFO. El controlador devuelve esta estructura a través de una solicitud de consulta de OID OID_NIC_SWITCH_ENUM_SWITCHES.

    Nota El adaptador de red siempre debe crear un VPort predeterminado desde su grupo para la PF.