Control de solicitudes de OID_NIC_SWITCH_ALLOCATE_VF
Cuando el controlador de minipuerto para la función física PCI Express (PCIe) en el adaptador de red controla la solicitud de método de identificador de objeto (OID) de OID_NIC_SWITCH_ALLOCATE_VF, hace lo siguiente:
El controlador de minipuerto PF asigna los recursos de software para una función virtual PCIe (VF) en el adaptador de red. Estos recursos se configuran en función de los parámetros especificados en la estructura NDIS_NIC_SWITCH_VF_PARAMETERS .
El controlador de minipuerto PF asigna el VF a un conmutador NIC en el adaptador de red. El modificador NIC se identifica mediante el miembro SwitchId de la estructura NDIS_NIC_SWITCH_VF_PARAMETERS .
Para obtener más información sobre un conmutador NIC, consulte Conmutadores NIC.
El controlador de minipuerto PF actualiza el miembro VFId con un identificador VF. Este identificador es un índice de base cero y debe ser único en todas las máquinas virtuales asignadas en el conmutador NIC por el controlador de minipuerto PF.
El controlador de sobreaprovisionamiento usa el valor del miembro VFId en solicitudes OID sucesivas de OID_NIC_SWITCH_FREE_VF o OID_NIC_SWITCH_VF_PARAMETERS.
El controlador de minipuerto PF actualiza el miembro RequestorId con un identificador de solicitante (RID) PCIe para el VF.
El controlador de minipuerto llama a NdisMGetVirtualFunctionLocation para obtener la información de RID que corresponde al VF. A continuación, el controlador crea el RID mediante la macro NDIS_MAKE_RID en función de la información devuelta por la llamada a NdisMGetVirtualFunctionLocation.
La pila de virtualización usa el RID para reasignar DMA e interrupciones entre el PF y VF. El RID también permite que la unidad de administración de memoria de entrada y salida de hardware (IOMMU) convierta las direcciones físicas invitadas en direcciones físicas de host.
El controlador de minipuerto PF inicializa y expone el VF. Esto hace que el VF esté listo para su uso por la pila de virtualización.
Si el controlador de minipuerto PF puede asignar correctamente los recursos de software necesarios e inicializar el VF, el controlador completa la solicitud OID con NDIS_STATUS_SUCCESS. El controlador de minipuerto PF debe mantener los identificadores de VF para cada VF asignado. NDIS y los controladores de sobreajuste usan el identificador VF en solicitudes de OID sucesivas al controlador de miniporte PF para diversas acciones, como restablecer o liberar el VF.
Nota Cuando se asignan recursos para el VF, el VF está en un estado no conectado porque un puerto virtual (VPort) no está asociado al VF. El controlador de sobreaprovisionamiento puede emitir una solicitud de OID de OID_NIC_SWITCH_CREATE_VPORT para crear y adjuntar un VPort al VF. Para obtener más información, consulte Creación de un puerto virtual.