Eliminación de un conmutador NIC
Un adaptador de red que admita la virtualización de E/S raíz única (SR-IOV) debe poder eliminar un conmutador NIC. Solo el controlador de miniporte para la función física PCI Express (PCIe) del adaptador SR-IOV puede eliminar un conmutador NIC en el adaptador.
Nota A partir de NDIS 6.30 en Windows Server 2012, la interfaz SR-IOV solo admite un conmutador NIC en el adaptador de red. Este modificador se conoce como el conmutador NIC predeterminado y el identificador de NDIS_DEFAULT_SWITCH_ID hace referencia a este.
Antes de detener el controlador de miniporte PF, NDIS elimina el conmutador NIC mediante la emisión de una solicitud de conjunto de identificador de objeto (OID) de OID_NIC_SWITCH_DELETE_SWITCH. El miembro InformationBuffer de la estructura NDIS_OID_REQUEST contiene un puntero a una estructura de NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS que especifica el identificador del modificador que se va a eliminar.
NDIS aplica las siguientes directivas antes de emitir la solicitud de conjunto de OID de OID_NIC_SWITCH_DELETE_SWITCH al controlador de miniporte PF:
NDIS garantiza que todos los filtros de recepción se han borrado de los puertos virtuales predeterminados y no predeterminados (VPorts) en el conmutador NIC. Los filtros de recepción se borran a través de una solicitud de conjunto de OID de OID_RECEIVE_FILTER_CLEAR_FILTER.
NDIS garantiza que se han eliminado previamente todos los puertos virtuales no predeterminados (VPorts) creados en el conmutador. Las instancias de VPort se eliminan a través de una solicitud de conjunto de OID de OID_NIC_SWITCH_DELETE_VPORT.
NDIS garantiza que todos los recursos de las funciones virtuales (VFs) de PCIe conectados al conmutador NIC se hayan liberado previamente. Las máquinas virtuales se liberan a través de una solicitud de conjunto de OID de OID_NIC_SWITCH_FREE_VF.
Cuando recibe la solicitud de método OID de OID_NIC_SWITCH_DELETE_SWITCH, el controlador de miniporte PF debe hacer lo siguiente:
Si el controlador de miniporte PF admite la creación estática y la configuración de conmutadores NIC, debe liberar los recursos de software asociados con el conmutador NIC especificado. Sin embargo, el controlador solo puede liberar los recursos de hardware para el conmutador NIC cuando se llama a MiniportHaltEx .
Para obtener más información sobre la creación de conmutadores NIC estáticos, consulte Creación estática de un conmutador NIC.
Si el controlador de miniporte PF admite la creación dinámica y la configuración de conmutadores NIC, debe liberar los recursos de hardware y software asociados al conmutador NIC especificado.
Para obtener más información sobre la creación dinámica de conmutadores NIC, consulte Creación dinámica de un conmutador NIC.
Si el controlador de miniporte PF admite la creación dinámica de conmutadores NIC y todos los conmutadores NIC se han eliminado en el adaptador de red, el controlador debe deshabilitar la virtualización en el adaptador llamando a NdisMEnableVirtualization. Para deshabilitar la virtualización, el adaptador de red debe establecer el parámetro EnableVirtualization en FALSE y el parámetro NumVFs en cero.
NdisMEnableVirtualization borra el miembro NumVFs y el bit Enable VF en la estructura de funcionalidad extendida SR-IOV en el espacio de configuración PCIe del PF del adaptador de red.
Nota Si el controlador de miniporte PF admite la creación estática y la configuración de conmutadores NIC, solo debe llamar a NdisMEnableVirtualization cuando se llama a MiniportHaltEx .