Detener un controlador de minipuerto PF
En este tema se describen los pasos necesarios para detener el controlador de minipuerto para una función física PCI Express (PCIe) (PF) en un adaptador que admita la virtualización de E/S raíz única (SR-IOV). Estos pasos se muestran en la ilustración siguiente.
Este tema contiene la información siguiente:
Acciones realizadas por NDIS y controladores excesivos antes de llamar a MiniportHaltEx
Acciones realizadas por el controlador de miniport pf cuando se llama a MiniportHaltEx
Acciones realizadas por NDIS y controladores excesivos antes de llamar a MiniportHaltEx
Antes de que NDIS llame a la función MiniportHaltEx del controlador pf miniport, primero hace lo siguiente:
NDIS desenlace todos los controladores de protocolo que previamente se han enlazado al controlador de miniporte PF subyacente. NDIS lo hace llamando a la función ProtocolUnbindAdapterEx del controlador de protocolo.
NDIS separa todos los controladores de filtro que se han enlazado previamente al controlador de miniporte PF subyacente. NDIS lo hace llamando a la función FilterDetach del controlador de filtro.
Cuando un controlador de filtro o protocolo sobresalido se está desconectando o desasociando del controlador de miniporte PF, debe seguir estos pasos:
El controlador debe emitir una solicitud de conjunto de identificador de objeto (OID) de OID_RECEIVE_FILTER_CLEAR_FILTER para borrar los filtros de recepción establecidos anteriormente. El controlador establece estos filtros en el puerto virtual predeterminado (VPort) o en cualquier VPort no predeterminado del conmutador NIC en el adaptador de red. El controlador establece estos filtros mediante la emisión de solicitudes de método OID de OID_RECEIVE_FILTER_SET_FILTER al controlador de miniporte PF.
El controlador debe emitir una solicitud de conjunto de OID de OID_NIC_SWITCH_DELETE_VPORT para eliminar las VPorts no predeterminadas que creó anteriormente en el conmutador NIC. El controlador establece estas VPorts mediante la emisión de solicitudes de método OID de OID_NIC_SWITCH_CREATE_VPORT al controlador de minipuerto PF.
El controlador debe emitir una solicitud de conjunto de OID de OID_NIC_SWITCH_FREE_VF para liberar los recursos de las funciones virtuales de PCIe que haya asignado anteriormente en el conmutador NIC. El controlador asigna recursos para el VF mediante la emisión de solicitudes de método OID de OID_NIC_SWITCH_ALLOCATE_VF al controlador de minipuerto PF.
Para obtener más información, consulte Liberar recursos para una función virtual.
Nota Cuando se liberan recursos para la VF, NDIS llama a la función MiniportHaltEx del controlador de miniporte VF. Para obtener más información, vea Detener un controlador de minipuerto VF.
Una vez eliminados todos los filtros de recepción, las VPorts no predeterminadas y las máquinas virtuales del conmutador NIC, NDIS sigue estos pasos:
NDIS elimina todos los conmutadores NIC mediante la emisión de solicitudes de conjunto de OID de OID_NIC_SWITCH_DELETE_SWITCH al controlador de miniporte PF. Para obtener más información sobre cómo se elimina un conmutador NIC, consulte Eliminación de un conmutador NIC.
Nota A partir de Windows Server 2012, la interfaz SR-IOV solo admite el conmutador NIC predeterminado en el adaptador de red.
Una vez eliminados correctamente todos los conmutadores NIC, NDIS llama a la función MiniportHaltEx del controlador de minipuerto PF.
Acciones realizadas por el controlador de miniport pf cuando se llama a MiniportHaltEx
Cuando NDIS llama a MiniportHaltEx, el controlador de minipuerto PF debe seguir estos pasos:
Si el controlador de miniporte PF admite la creación estática de conmutadores NIC y se han eliminado todos los conmutadores NIC, el controlador debe deshabilitar la virtualización en el adaptador llamando a NdisMEnableVirtualization con el parámetro EnableVirtualization establecido en FALSE y el parámetro NumVFs establecido 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 dinámica y la configuración de conmutadores NIC, debe llamar a NdisMEnableVirtualization cuando el controlador controla la solicitud de conjunto de OID de OID_NIC_SWITCH_DELETE_SWITCH. Esta solicitud de OID se emite antes de llamar a MiniportHaltEx .
El controlador de minipuerto PF realiza las demás tareas asociadas a una operación de detención de minipuerto. Para obtener más información, vea Detener un adaptador de minipuerto.