Determinación de las funcionalidades de SR-IOV
En este tema se describe cómo NDIS y los controladores de forma excesiva determinan las funcionalidades de virtualización de E/S raíz única (SR-IOV) de un adaptador de red. Este tema contiene la información siguiente:
Generación de informes de funcionalidades sr-IOV durante MiniportInitializeEx
Consulta de funcionalidades de SR-IOV mediante el uso excesivo de controladores
Generación de informes de funcionalidades sr-IOV durante MiniportInitializeEx
Cuando NDIS llama a la función MiniportInitializeEx del controlador de miniporte, el controlador proporciona las siguientes funcionalidades sr-IOV:
Conjunto completo de funcionalidades de hardware SR-IOV que el adaptador de red puede admitir.
Las funcionalidades sr-IOV que están habilitadas actualmente en el adaptador de red.
Si el controlador de minipuerto administra la función física PCI Express (PCIe) o la función virtual (VF) en el adaptador de red.
El controlador de minipuerto informa de las funcionalidades de hardware SR-IOV del adaptador de red subyacente a través de una estructura de NDIS_SRIOV_CAPABILITIES que se inicializa de la siguiente manera:
El controlador de minipuerto inicializa el miembro Header . El controlador establece el miembro Type de Header en NDIS_OBJECT_TYPE_DEFAULT.
A partir de NDIS 6.30, el controlador de minipuerto establece el miembro Revision de Header en NDIS_SRIOV_CAPABILITIES _REVISION_1 y el miembro Size en NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.
El controlador de minipuerto establece las marcas adecuadas en el miembro SriovCapabilities para notificar las funcionalidades sr-IOV.
Si el adaptador de red admite SR-IOV, el controlador de minipuerto para la función física PCI Express (PCIe) del adaptador debe establecer las marcas siguientes:
NDIS_SRIOV_CAPS_SRIOV_SUPPORTED
NDIS_SRIOV_CAPS_PF_MINIPORT
Nota:
El controlador de minipuerto para una función virtual PCIe (VF) del adaptador de red debe establecer la marca NDIS_SRIOV_CAPS_VF_MINIPORT y la marca NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.
Cuando NDIS llama a la función MiniportInitializeEx del controlador de miniporte, el controlador registra las funcionalidades SR-IOV del adaptador de red siguiendo estos pasos:
El controlador de minipuerto inicializa una estructura de NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .
El controlador de minipuerto establece el miembro HardwareSriovCapabilities en un puntero a la estructura NDIS_SRIOV_CAPABILITIES inicializada anteriormente.
Si la configuración del Registro para la palabra clave *SRIOV INF tiene un valor de uno, las funcionalidades sr-IOV están habilitadas actualmente en el adaptador de red. El controlador de minipuerto establece los miembros CurrentSriovCapabilities en un puntero a la misma estructura NDIS_SRIOV_CAPABILITIES .
Si la configuración del Registro para la palabra clave *SRIOV INF tiene un valor de cero, las funcionalidades sr-IOV se deshabilitan actualmente en el adaptador de red. El controlador de minipuerto debe establecer el miembro CurrentSriovCapabilities en NULL.
Para obtener más información sobre la palabra clave *SRIOV INF, vea Palabras clave INF estandarizadas para SR-IOV.
El controlador llama a NdisMSetMiniportAttributes y establece el parámetro MiniportAttributes en un puntero a la estructura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .
Para obtener más información sobre el proceso de inicialización del adaptador, consulte Inicialización de un adaptador de minipuerto.
Consulta de funcionalidades de SR-IOV mediante el uso excesivo de controladores
NDIS pasa las funcionalidades de SR-IOV habilitadas actualmente del adaptador de red a controladores que se enlazan al adaptador de red de la siguiente manera:
Cuando NDIS llama a una función FilterAttach del controlador de filtro excesiva, NDIS pasa las funcionalidades sr-IOV del adaptador de red a través del parámetro AttachParameters . Este parámetro contiene un puntero a una estructura de NDIS_FILTER_ATTACH_PARAMETERS . El miembro SriovCapabilities de esta estructura contiene un puntero a una estructura NDIS_SRIOV_CAPABILITIES .
Cuando NDIS llama a la función ProtocolBindAdapterEx de un controlador de protocolo excesivo, NDIS pasa las funcionalidades sr-IOV del adaptador de red a través del parámetro BindParameters . Este parámetro contiene un puntero a una estructura de NDIS_FILTER_ATTACH_PARAMETERS . El miembro SriovCapabilities de esta estructura contiene un puntero a una estructura NDIS_SRIOV_CAPABILITIES .
NDIS también devuelve la estructura NDIS_SRIOV_CAPABILITIES cuando controla las solicitudes de consulta de identificador de objeto (OID) de OID_SRIOV_HARDWARE_CAPABILITIES y OID_SRIOV_CURRENT_CAPABILITIES emitidas por controladores de filtro o protocolo excesivo.