Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describe cómo NDIS y los controladores subyacentes determinan las capacidades de filtrado de recepción de un adaptador de red que admite la virtualización de E/S raíz única (SR-IOV). Este tema contiene la siguiente información:
Notificación de funcionalidades de filtrado de recepción durante MiniportInitializeEx
Consulta de las funcionalidades de filtrado de recepción mediante controladores superpuestos
Nota Solo el controlador de minipuerto para la función física (PF) PCI Express (PCIe) de un adaptador de red SR-IOV puede informar de las funcionalidades de filtrado de recepción. Los controladores de minipuerto para las Funciones Virtuales (VFs) PCIe no deben informar de las funcionalidades de filtrado de recepción del adaptador de SR-IOV.
Notificación de funcionalidades de filtrado de recepción durante MiniportInitializeEx
Cuando NDIS llama a la función MiniportInitializeEx del controlador de minipuerto de PF, el controlador proporciona las siguientes funcionalidades de filtrado de recepción:
El hardware completo recibe funcionalidades de filtrado que el adaptador de red puede admitir.
Funcionalidades de filtrado de recepción para las interfaces que están habilitadas actualmente en el adaptador de red.
El controlador de minipuerto notifica las funcionalidades de filtrado de recepción de hardware completas del adaptador de red subyacente a través de una estructura NDIS_RECEIVE_FILTER_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_RECEIVE_FILTER_CAPABILITIES_REVISION_2 y el miembro Size en NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
El controlador de minipuerto establece los demás miembros de la estructura NDIS_RECEIVE_FILTER_CAPABILITIES en el intervalo de valores para las funcionalidades de filtrado de recepción del adaptador de red de SR-IOV. Por ejemplo, el controlador de minipuerto asigna las marcas adecuadas en el SupportedFilterTests para especificar las operaciones de prueba de filtro que admite el controlador de minipuerto.
Además de SR-IOV, el filtrado de recepción también se usa en las interfaces siguientes:
Fusión de paquetes NDIS Para obtener más información sobre cómo usar filtros de recepción en esta interfaz, consulte Administración de filtros de recepción de coalescencia de paquetes.
Virtual Machine Queue (VMQ). Para obtener más información sobre cómo usar filtros de recepción en esta interfaz, consulte Configuración y Borrado de filtros de VMQ.
Si el controlador de minipuerto admite cualquiera de estas interfaces, también debe establecer los miembros de la estructura NDIS_RECEIVE_FILTER_CAPABILITIES en el rango de valores de la funcionalidad de filtrado de recepción específicos de la interfaz. Por ejemplo, si el controlador admite la fusión de paquetes NDIS y SR-IOV, debe establecer la marca NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE en el miembro SupportedQueueProperties.
El controlador de minipuerto notifica las funcionalidades de filtrado de recepción habilitadas actualmente del adaptador de red subyacente a través de una estructura NDIS_RECEIVE_FILTER_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_RECEIVE_FILTER_CAPABILITIES_REVISION_2 y el miembro Size en NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
El controlador de minipuerto establece los demás miembros de la estructura NDIS_RECEIVE_FILTER_CAPABILITIES en el intervalo de valores de las funcionalidades de filtrado de recepción de las interfaces que están habilitadas actualmente. Por ejemplo, si la fusión de paquetes NDIS está habilitada, el controlador solo debe establecer los miembros específicos de esta tecnología.
Las interfaces que usan el filtrado de recepción están habilitadas o deshabilitadas mediante palabras clave INF estandarizadas. Para obtener más información sobre cómo está habilitada la fusión de paquetes NDIS, consulte Palabras clave INF estandarizadas para fusión de paquetes. Para obtener más información sobre cómo se habilitan SR-IOV y VMQ, consulte Manejo de las palabras clave INF estandarizadas de SR-IOV, VMQ y RSS.
Cuando NDIS llama a la función MiniportInitializeEx del controlador de miniporte, el controlador registra las funcionalidades de filtrado de recepción del adaptador de red siguiendo estos pasos:
El controlador de minipuerto inicializa una estructura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
El controlador de minipuerto establece el miembro HardwareReceiveFilterCapabilities en la dirección de una estructura NDIS_RECEIVE_FILTER_CAPABILITIES. Esta estructura se inicializó previamente con las funcionalidades de filtrado de recepción de hardware completas del adaptador de red.
Si el VMQ, SR-IOV y la fusión de paquetes NDIS están deshabilitados actualmente en el adaptador de red, el controlador de minipuerto establece el miembro CurrentReceiveFilterCapabilities en NULL.
Si la fusión de paquetes VMQ, SR-IOV o NDIS están habilitadas actualmente en el adaptador de red, el controlador de miniporte debe hacer lo siguiente:
El controlador de minipuerto debe inicializar otra estructura NDIS_RECEIVE_FILTER_CAPABILITIES con las funcionalidades de filtrado de recepción actuales para las interfaces que están habilitadas actualmente en el adaptador de red.
Si la interfaz SR-IOV está habilitada, hay situaciones en las que el controlador de miniporte debe establecer los miembros de la estructura de NDIS_RECEIVE_FILTER_CAPABILITIES en los mismos valores o diferentes. Esto es porque la interfaz SR-IOV proporciona un mecanismo de puesta en cola similar a VMQ, pero usa puertos virtuales (VPorts) en lugar de colas de recepción de VM.
Por ejemplo, el controlador de minipuerto debe establecer la marca NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED en el miembro EnabledFilterTypes si está habilitada la interfaz VMQ o SR-IOV. Sin embargo, el controlador de miniport debe establecer el miembro NumQueues a cero si la interfaz SR-IOV está habilitada y a un valor no nulo si la interfaz VMQ está habilitada.
El controlador de minipuerto establece el miembro CurrentReceiveFilterCapabilities en la dirección de la estructura de NDIS_RECEIVE_FILTER_CAPABILITIES que contiene las funcionalidades de filtrado de recepción actuales para la interfaz habilitada actualmente.
Si VMQ, SR-IOV o la fusión de paquetes NDIS están habilitados actualmente en el adaptador de red, el controlador de minipuerto establece el miembro HardwareReceiveFilterCapabilities en la dirección de una estructura NDIS_RECEIVE_FILTER_CAPABILITIES. Esta estructura se inicializó previamente con las funcionalidades de filtrado de recepción habilitadas actualmente del adaptador de red.
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 miniporte.
Consulta de las funcionalidades de filtrado de recepción mediante controladores superpuestos
NDIS pasa las funcionalidades de filtrado de recepción habilitadas actualmente para el 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 superpuesto, NDIS pasa las funcionalidades del conmutador NIC del adaptador de red a través del parámetro AttachParameters. Este parámetro contiene un puntero a una estructura NDIS_FILTER_ATTACH_PARAMETERS. El miembro ReceiveFilterCapabilities de esta estructura contiene un puntero a una estructura NDIS_RECEIVE_FILTER_CAPABILITIES.
Cuando NDIS llama a la función ProtocolBindAdapterEx de un controlador de protocolo superior, NDIS pasa las funcionalidades del conmutador NIC del adaptador de red a través del parámetro BindParameters. Este parámetro contiene un puntero a una estructura NDIS_FILTER_ATTACH_PARAMETERS. El miembro ReceiveFilterCapabilities de esta estructura contiene un puntero a una estructura NDIS_RECEIVE_FILTER_CAPABILITIES.
NDIS también devuelve la estructura NDIS_RECEIVE_FILTER_CAPABILITIES cuando gestiona las solicitudes de consulta de identificador de objeto (OID) de OID_RECEIVE_FILTER_CURRENT_CAPABILITIES y OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES que emiten los controladores de protocolo o filtro superiores.