Compartir a través de


estructura NDIS_RECEIVE_FILTER_CAPABILITIES (ntddndis.h)

La estructura NDIS_RECEIVE_FILTER_CAPABILITIES especifica las funcionalidades de filtrado de recepción de un adaptador de red.

Los filtros de recepción NDIS se usan en las siguientes interfaces NDIS:

Sintaxis

typedef struct _NDIS_RECEIVE_FILTER_CAPABILITIES {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              EnabledFilterTypes;
  ULONG              EnabledQueueTypes;
  ULONG              NumQueues;
  ULONG              SupportedQueueProperties;
  ULONG              SupportedFilterTests;
  ULONG              SupportedHeaders;
  ULONG              SupportedMacHeaderFields;
  ULONG              MaxMacHeaderFilters;
  ULONG              MaxQueueGroups;
  ULONG              MaxQueuesPerQueueGroup;
  ULONG              MinLookaheadSplitSize;
  ULONG              MaxLookaheadSplitSize;
  ULONG              SupportedARPHeaderFields;
  ULONG              SupportedIPv4HeaderFields;
  ULONG              SupportedIPv6HeaderFields;
  ULONG              SupportedUdpHeaderFields;
  ULONG              MaxFieldTestsPerPacketCoalescingFilter;
  ULONG              MaxPacketCoalescingFilters;
  ULONG              NdisReserved;
} NDIS_RECEIVE_FILTER_CAPABILITIES, *PNDIS_RECEIVE_FILTER_CAPABILITIES;

Miembros

Header

Estructura NDIS_OBJECT_HEADER de la estructura NDIS_RECEIVE_FILTER_CAPABILITIES . El controlador establece el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_DEFAULT.

Para indicar la versión de la estructura de NDIS_RECEIVE_FILTER_CAPABILITIES , el controlador establece el miembro Revision en uno de los valores siguientes:

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2

Se agregó
varios miembros para NDIS 6.30 y versiones posteriores.

El controlador establece el miembro Size en NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.

NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1

Versión original de NDIS 6.20.

El controlador establece el miembro Size en NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.

Flags

OR bit a bit de marcas. Este miembro está reservado para NDIS.

EnabledFilterTypes

OR bit a bit de marcas que especifican los tipos de filtros de recepción que están habilitados. La siguiente marca de tipo de filtro es válida.

NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED

Especifica que los filtros VMQ están habilitados.

Nota El controlador de minipuerto debe establecer esta marca si el controlador de minipuerto está habilitado para usar la interfaz SR-IOV.
 

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

Especifica que los filtros de recepción de fusión de paquetes NDIS están habilitados.

EnabledQueueTypes

OR bit a bit de marcas que especifican los tipos de colas de recepción que están habilitadas. La siguiente marca de tipo de cola es válida.

NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED

Especifica que las colas de máquina virtual (VM) están habilitadas. Las colas de máquina virtual se usan cuando el controlador de miniporte está habilitado para usar la interfaz VMQ.

Nota El controlador de minipuerto no debe establecer esta marca si el controlador de minipuerto está habilitado para usar solo la interfaz SR-IOV. Para obtener más información sobre cómo están habilitadas estas interfaces, consulte Control de sr-IOV, VMQ y PALABRAs clave INF estandarizadas rss.
 

NumQueues

Número de colas de máquina virtual que admite el adaptador de red.

Nota Si el controlador de minipuerto está habilitado para usar la interfaz SR-IOV, debe establecer este miembro en cero. Cuando se habilita el uso de la interfaz SR-IOV, NDIS usa puertos virtuales (VPorts) para recibir y transmitir colas en lugar de colas de máquinas virtuales.
 

SupportedQueueProperties

OR bit a bit de marcas que especifican las propiedades de la cola de máquina virtual que admite el adaptador de red. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED

El adaptador de red usa MSI-X para la generación de interrupciones de cola de recepción. Esta marca es obligatoria para los controladores de minipuerto que admiten la interfaz VMQ o SR-IOV.

NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED

El adaptador de red proporciona los requisitos mínimos para admitir el filtrado de paquetes de cola de máquinas virtuales.

El controlador de minipuerto debe establecer esta marca si está habilitada para usar la interfaz VMQ o SR-IOV.

Para más información sobre los requisitos de VMQ para el filtrado de paquetes de cola de máquinas virtuales, consulte Configuración y borrado de filtros de VMQ.

Para obtener más información sobre los requisitos de SR-IOV para el filtrado de paquetes de cola de máquinas virtuales, consulte Configuración de un filtro de recepción en un puerto virtual.

NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED

El adaptador de red admite colas de máquina virtual que dividen un paquete recibido entrante en el desplazamiento de lookahead. Este desplazamiento es igual o mayor que el tamaño de lookahead solicitado. El adaptador de red usa DMA para transferir los datos lookahead y post-lookahead a segmentos de memoria compartidos independientes.

Nota A partir de NDIS 6.30, ya no se admite la división de datos de paquetes en búferes de lookahead independientes. Los controladores miniport que admiten esta versión de NDIS no deben establecer esta marca.
 

NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED

El adaptador de red admite la capacidad de cambiar dinámicamente uno de los siguientes atributos de afinidad de procesador:

  • Afinidad de procesador de una cola de máquina virtual en la interfaz VMQ. La afinidad del procesador se cambia a través de una solicitud de conjunto de OID de OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
  • Afinidad de procesador de un puerto virtual no predeterminado (VPort), que se creó en la interfaz SR-IOV y se adjunta a la función física PCI Express (PCIe) del adaptador de red. La afinidad del procesador se cambia a través de una solicitud de conjunto de OID de OID_NIC_SWITCH_VPORT_PARAMETERS.
Nota Esta marca se admite en NDIS 6.30 y versiones posteriores. Los controladores de miniporte que admiten la interfaz VMQ o SR-IOV deben establecer esta marca.
 

NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED

El adaptador de red admite la fusión de interrupciones para los paquetes recibidos en cualquiera de los siguientes elementos:

  • Varias colas de máquina virtual en la interfaz VMQ.
  • Varias VPorts que están conectadas al PF en la interfaz SR-IOV.
Si se establece esta marca, el adaptador de red debe fusionar interrupciones para las colas de máquina virtual o VPorts que tengan la misma afinidad de procesador.
Nota Esta marca se admite en NDIS 6.30 y versiones posteriores. Los controladores de miniporte que admiten la interfaz VMQ o SR-IOV deben establecer esta marca.
 

NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE

Indica que el número de colas de máquinas virtuales disponibles es el número mínimo de colas disponibles de cualquier miembro de un equipo de conmutación por error de equilibrio de carga (LBFO). Esta marca solo se aplica a los filtros LBFO. Esta marca no está establecida para minipuertos.

NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE

Indica que el número de colas de máquinas virtuales disponibles es la suma de todas las colas disponibles de todos los miembros de un equipo LBFO. Esta marca solo se aplica a los filtros LBFO. Esta marca no está establecida para minipuertos.

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

El adaptador de red admite la fusión de paquetes NDIS. La fusión de paquetes solo se admite en la cola de recepción predeterminada del adaptador de red. Esta cola de recepción tiene un identificador de NDIS_DEFAULT_RECEIVE_QUEUE_ID.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

SupportedFilterTests

OR bit a bit de marcas que especifican las operaciones de prueba que admite un controlador de minipuerto. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED

El adaptador de red admite la prueba del campo de encabezado seleccionado para determinar si es igual a un valor determinado.

Nota Si el controlador de minipuerto admite las interfaces VMQ o SR-IOV, debe establecer esta marca.
 

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

El adaptador de red admite el enmascaramiento (es decir, un AND bit a bit) del campo de encabezado seleccionado para determinar si el resultado es igual a un valor especificado.

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED

El adaptador de red admite la prueba del campo de encabezado seleccionado para determinar si no es igual a un valor especificado.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

SupportedHeaders

OR bit a bit de marcas que especifican los tipos de encabezados de paquete de red que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED

El adaptador de red puede inspeccionar el encabezado de control de acceso multimedia (MAC) de un paquete de red. El miembro SupportedMacHeaderFields define los distintos campos del encabezado MAC que se pueden inspeccionar.

NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED

El adaptador de red puede inspeccionar el encabezado protocolo de resolución de direcciones (ARP) de un paquete de red. El miembro SupportedArpHeaderFields define los distintos campos del encabezado ARP que se pueden inspeccionar.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED

El adaptador de red puede inspeccionar el encabezado ip versión 4 (IPv4) de un paquete de red. El miembro SupportedIPv4HeaderFields define los distintos campos del encabezado IPv4 que se pueden inspeccionar.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED

El adaptador de red puede inspeccionar el encabezado ip versión 6 (IPv6) de un paquete de red. El miembro SupportedIPv6HeaderFields define los distintos campos del encabezado IPv6 que se pueden inspeccionar.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

El adaptador de red puede inspeccionar el encabezado Protocolo de datagramas de usuario (UDP) de un paquete de red. El miembro SupportedIPv6HeaderFields define los distintos campos del encabezado UDP que se pueden inspeccionar.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

SupportedMacHeaderFields

OR bit a bit de marcas que especifican los tipos de campos de encabezado MAC que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED

El adaptador de red admite la inspección y el filtrado que se basan en la dirección MAC de destino en el encabezado MAC.

Nota A partir de NDIS 6.30, los controladores de minipuerto que admiten la interfaz VMQ o SR-IOV deben establecer esta marca.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED

El adaptador de red admite la inspección y el filtrado basados en la dirección MAC de origen en el encabezado MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED

El adaptador de red admite la inspección y el filtrado basados en el identificador EtherType del encabezado MAC. Por ejemplo, el identificador EtherType de los paquetes IPv4 es 0x0800.

NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED

El adaptador de red admite la inspección y el filtrado basados en el identificador VLAN en el encabezado MAC.

Nota A partir de NDIS 6.30, esta marca es opcional. Si el controlador de miniporte no establece esta marca, el adaptador de red debe inspeccionar y filtrar los campos de dirección MAC especificados. Si una etiqueta VLAN está presente en el paquete recibido, el adaptador de red debe quitarla de los datos del paquete. El controlador de minipuerto debe colocar la etiqueta VLAN en una estructura de NDIS_NET_BUFFER_LIST_8021Q_INFO asociada a la estructura NET_BUFFER_LIST del paquete.
 

NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED

El adaptador de red admite la inspección y el filtrado basados en la etiqueta de prioridad en el encabezado MAC.

NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

El adaptador de red admite la inspección y el filtrado que se basan en el campo de tipo de paquete del encabezado IEEE 802.2 del protocolo de acceso a subredes (SNAP) en un encabezado MAC 802.3.

Nota Esta marca se admite en NDIS 6.30 y versiones posteriores.
 

MaxMacHeaderFilters

Número máximo de filtros de encabezado MAC que admite el controlador de minipuerto.

MaxQueueGroups

Este miembro está reservado para NDIS.

MaxQueuesPerQueueGroup

Este miembro está reservado para NDIS.

MinLookaheadSplitSize

Tamaño mínimo, en bytes, que admite el adaptador de red para los búferes de paquetes de búsqueda anticipada.

Nota A partir de NDIS 6.30, ya no se admite la división de datos de paquetes en búferes de lookahead independientes. Los controladores de miniporte que admiten esta versión de NDIS deben establecer este miembro en cero.
 

MaxLookaheadSplitSize

Tamaño máximo, en bytes, que admite el adaptador de red para los búferes de paquetes de búsqueda anticipada.

Nota A partir de NDIS 6.30, ya no se admite la división de datos de paquetes en búferes de lookahead independientes. Los controladores de miniporte que admiten esta versión de NDIS deben establecer este miembro en cero.
 

SupportedARPHeaderFields

OR bit a bit de marcas que especifican los tipos de campos de encabezado de ARP que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo de operación ARP.

NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo dirección del protocolo de origen (SPA) de ARP.

NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo dirección del protocolo de destino (TPA) de ARP.

SupportedIPv4HeaderFields

OR bit a bit de marcas que especifican los tipos de campos de encabezado IPv4 que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo del protocolo IPv4.

SupportedIPv6HeaderFields

OR bit a bit de marcas que especifican los tipos de campos de encabezado IPv6 que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo del protocolo IPv6.

SupportedUdpHeaderFields

OR bit a bit de marcas que especifican los tipos de campos de encabezado IPv6 que un controlador de miniporte puede inspeccionar. Se definen las marcas siguientes:

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

El adaptador de red admite el filtrado de recepción en el campo puerto de destino UDP.

Nota Si el paquete UDP recibido contiene opciones IPv4 o encabezados de extensión IPv6, el adaptador de red puede quitar automáticamente el paquete recibido y tratarlo como si se produjo un error en la prueba de filtro UDP.
 

MaxFieldTestsPerPacketCoalescingFilter

Número máximo de pruebas en los campos de encabezado de paquete que se pueden especificar para un único filtro de fusión de paquetes. Para obtener más información sobre la fusión de paquetes, consulte Fusión de paquetes NDIS.

Nota Los adaptadores de red que admiten la fusión de paquetes deben admitir cinco o más campos de encabezado de paquete que se pueden especificar para un único filtro de fusión de paquetes. Si el adaptador no admite la fusión de paquetes, el controlador de minipuerto debe establecer este valor en cero.
 

MaxPacketCoalescingFilters

Número máximo de filtros de recepción de fusión de paquetes admitidos por el adaptador de red.

Nota Los adaptadores de red que admiten la fusión de paquetes deben admitir diez o más filtros de fusión de paquetes. Si el adaptador no admite la fusión de paquetes, el controlador de minipuerto debe establecer este valor en cero.
 

NdisReserved

Reservado. Establecer en 0.

Comentarios

La estructura NDIS_RECEIVE_FILTER_CAPABILITIES se usa en el miembro ReceiveFilterCapabilities del NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS y estructuras de NDIS_BIND_PARAMETERS y el resultado devuelto de OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES Consulta OID.

Muchos de los miembros y la configuración de marca de la estructura de NDIS_RECEIVE_FILTER_CAPABILITIES solo son válidos si el controlador de miniporte está habilitado para usar la interfaz VMQ o SR-IOV. El controlador de minipuerto está habilitado para usar estas interfaces mediante palabras clave INF estandarizadas. Para obtener más información, consulte Control de sr-IOV, VMQ y RSS normalizadas palabras clave INF.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.20 y versiones posteriores.
Encabezado ntddndis.h (include Ndis.h)

Consulte también

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_RECEIVE_QUEUE_INFO

NDIS_RECEIVE_QUEUE_PARAMETERS

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES