структура NDIS_RECEIVE_FILTER_CAPABILITIES (ntddndis.h)
Структура NDIS_RECEIVE_FILTER_CAPABILITIES определяет возможности фильтрации приема сетевого адаптера.
Фильтры получения NDIS используются в следующих интерфейсах NDIS:
-
Объединение пакетов NDIS. Дополнительные сведения об использовании фильтров получения в этом интерфейсе см. в разделе Управление фильтрами получения объединения пакетов.
-
Виртуализация одно корневых операций ввода-вывода (SR-IOV). Дополнительные сведения об использовании фильтров получения в этом интерфейсе см. в разделе Настройка фильтра получения для виртуального порта.
-
Очередь виртуальных машин (VMQ). Дополнительные сведения об использовании фильтров получения в этом интерфейсе см. в разделе Настройка и очистка фильтров VMQ.
Синтаксис
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;
Члены
Header
Структура NDIS_OBJECT_HEADER для структуры NDIS_RECEIVE_FILTER_CAPABILITIES . Драйвер задает элемент Type структуры, указанной в заголовке , для NDIS_OBJECT_TYPE_DEFAULT.
Чтобы указать версию структуры NDIS_RECEIVE_FILTER_CAPABILITIES , драйвер задает для элемента Revision одно из следующих значений:
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2
Добавлено
различные элементы для NDIS 6.30 и более поздних версий.
Драйвер задает для элемента Size значение NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_1
Исходная версия для NDIS 6.20.
Драйвер задает для элемента Size значение NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_1.
Flags
Побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.
EnabledFilterTypes
Побитовое ИЛИ флагов, указывающих типы включенных фильтров получения. Следующий флаг типа фильтра является допустимым.
NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED
Указывает, что фильтры VMQ включены.
NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED
Указывает, что включены фильтры получения объединения пакетов NDIS.
EnabledQueueTypes
Побитовое ИЛИ флагов, указывающих типы включенных очередей получения. Следующий флаг типа очереди является допустимым.
NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED
Указывает, что очереди виртуальных машин включены. Очереди виртуальных машин используются, когда драйвер мини-порта включен для использования интерфейса VMQ.
NumQueues
Количество очередей виртуальных машин, поддерживаемых сетевым адаптером.
SupportedQueueProperties
Побитовое ИЛИ флагов, которые указывают свойства очереди виртуальных машин, поддерживаемые сетевым адаптером. Определены следующие флаги:
NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED
Сетевой адаптер использует MSI-X для создания прерываний очереди получения. Этот флаг является обязательным для драйверов мини-портов, поддерживающих интерфейс VMQ или SR-IOV.
NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED
Сетевой адаптер предоставляет минимальные требования для поддержки фильтрации пакетов очередей виртуальных машин.
Драйвер мини-порта должен установить этот флаг, если он включен для использования интерфейса VMQ или SR-IOV.
Дополнительные сведения о требованиях VMQ для фильтрации пакетов очередей виртуальных машин см. в разделе Настройка и очистка фильтров VMQ.
Дополнительные сведения о требованиях SR-IOV для фильтрации пакетов очередей виртуальных машин см. в статье Настройка фильтра получения для виртуального порта.
NDIS_RECEIVE_FILTER_LOOKAHEAD_SPLIT_SUPPORTED
Сетевой адаптер поддерживает очереди виртуальных машин, которые разделяют входящий полученный пакет по смещению lookahead. Это смещение равно или больше запрошенного размера lookahead. Сетевой адаптер использует DMA для передачи данных lookahead и post-lookahead в отдельные сегменты общей памяти.
NDIS_RECEIVE_FILTER_DYNAMIC_PROCESSOR_AFFINITY_CHANGE_SUPPORTED
Сетевой адаптер поддерживает возможность динамического изменения одного из следующих атрибутов сходства процессора:
- Сходство процессоров очереди виртуальных машин в интерфейсе VMQ. Сходство процессоров изменяется с помощью запроса на набор OID OID_RECEIVE_FILTER_QUEUE_PARAMETERS.
- Сходство процессоров для виртуального порта без изменений (VPort), который был создан в интерфейсе SR-IOV и подключен к физической функции (PF) PCI Express (PCIe) сетевого адаптера. Сходство процессоров изменяется с помощью запроса на набор OID OID_NIC_SWITCH_VPORT_PARAMETERS.
NDIS_RECEIVE_FILTER_INTERRUPT_VECTOR_COALESCING_SUPPORTED
Сетевой адаптер поддерживает объединение прерываний для полученных пакетов в любом из следующих вариантов:
- Несколько очередей виртуальных машин в интерфейсе VMQ.
- Несколько виртуальных портов, подключенных к PF в интерфейсе SR-IOV.
NDIS_RECEIVE_FILTER_IMPLAT_MIN_OF_QUEUES_MODE
Указывает, что количество доступных очередей виртуальных машин — это минимальное количество очередей, доступных для любого участника группы отработки отказа балансировки нагрузки (LBFO). Этот флаг применяется только к фильтрам LBFO. Этот флаг не установлен для минипортов.
NDIS_RECEIVE_FILTER_IMPLAT_SUM_OF_QUEUES_MODE
Указывает, что количество доступных очередей виртуальных машин — это сумма всех очередей, доступных каждому участнику команды LBFO. Этот флаг применяется только к фильтрам LBFO. Этот флаг не установлен для минипортов.
NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE
Сетевой адаптер поддерживает объединение пакетов NDIS. Объединение пакетов поддерживается только в очереди получения по умолчанию сетевого адаптера. Эта очередь получения имеет идентификатор NDIS_DEFAULT_RECEIVE_QUEUE_ID.
SupportedFilterTests
Побитовое ИЛИ флагов, задающее операции тестирования, поддерживаемые драйвером мини-порта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
Сетевой адаптер поддерживает тестирование выбранного поля заголовка, чтобы определить, равно ли оно заданному значению.
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED
Сетевой адаптер поддерживает маскирование (то есть побитовое И) выбранного поля заголовка, чтобы определить, равен ли результат указанному значению.
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
Сетевой адаптер поддерживает тестирование выбранного поля заголовка, чтобы определить, не равно ли оно указанному значению.
SupportedHeaders
Побитовое ИЛИ флагов, указывающих типы заголовков сетевых пакетов, которые может проверять драйвер минипорта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
Сетевой адаптер может проверить заголовок управления доступом к мультимедиа (MAC) сетевого пакета. Элемент SupportedMacHeaderFields определяет различные поля из mac-заголовка, которые можно проверить.
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
Сетевой адаптер может проверить заголовок ARP сетевого пакета. Элемент SupportedArpHeaderFields определяет различные поля из заголовка ARP, которые можно проверить.
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
Сетевой адаптер может проверить заголовок IP-адреса версии 4 (IPv4) сетевого пакета. Элемент SupportedIPv4HeaderFields определяет различные поля из заголовка IPv4, которые можно проверить.
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
Сетевой адаптер может проверить заголовок IP-адреса версии 6 (IPv6) сетевого пакета. Элемент SupportedIPv6HeaderFields определяет различные поля из заголовка IPv6, которые можно проверить.
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED
Сетевой адаптер может проверить заголовок UDP сетевого пакета. Элемент SupportedIPv6HeaderFields определяет различные поля из заголовка UDP, которые можно проверить.
SupportedMacHeaderFields
Побитовое ИЛИ флагов, указывающих типы полей заголовков MAC, которые может проверять драйвер минипорта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию на основе MAC-адреса назначения в заголовке MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_SOURCE_ADDR_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию на основе исходного MAC-адреса в заголовке MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию на основе идентификатора EtherType в заголовке MAC. Например, идентификатор EtherType для пакетов IPv4 0x0800.
NDIS_RECEIVE_FILTER_MAC_HEADER_VLAN_ID_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию на основе идентификатора виртуальной локальной сети в заголовке MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PRIORITY_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию на основе тега priority в заголовке MAC.
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED
Сетевой адаптер поддерживает проверку и фильтрацию, основанные на поле типа пакета заголовка ПРОТОКОЛА ДОСТУПА IEEE 802.2 к подсети (SNAP) в mac-заголовке 802.3.
MaxMacHeaderFilters
Максимальное количество фильтров заголовков MAC, поддерживаемых драйвером мини-порта.
MaxQueueGroups
Этот элемент зарезервирован для NDIS.
MaxQueuesPerQueueGroup
Этот элемент зарезервирован для NDIS.
MinLookaheadSplitSize
Минимальный размер в байтах, поддерживаемый сетевым адаптером для буферов пакетов lookahead.
MaxLookaheadSplitSize
Максимальный размер в байтах, поддерживаемый сетевым адаптером для буферов пакетов lookahead.
SupportedARPHeaderFields
Побитовое ИЛИ флагов, указывающих типы полей заголовков ARP, которые может проверять драйвер минипорта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле операции ARP.
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле Адрес исходного протокола ARP (SPA).
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле Адрес целевого протокола ARP (TPA).
SupportedIPv4HeaderFields
Побитовое ИЛИ флагов, указывающих типы полей заголовков IPv4, которые может проверить драйвер мини-порта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле протокола IPv4.
SupportedIPv6HeaderFields
Побитовое ИЛИ флагов, указывающих типы полей заголовков IPv6, которые может проверять драйвер мини-порта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле протокола IPv6.
SupportedUdpHeaderFields
Побитовое ИЛИ флагов, указывающих типы полей заголовков IPv6, которые может проверять драйвер мини-порта. Определены следующие флаги:
NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED
Сетевой адаптер поддерживает фильтрацию приема в поле порта назначения UDP.
MaxFieldTestsPerPacketCoalescingFilter
Максимальное количество тестов в полях заголовков пакетов, которое можно указать для одного фильтра объединения пакетов. Дополнительные сведения о объединениях пакетов см. в разделе Объединение пакетов NDIS.
MaxPacketCoalescingFilters
Максимальное количество фильтров приема для объединения пакетов, поддерживаемых сетевым адаптером.
NdisReserved
Зарезервировано. Задайте значение 0.
Комментарии
Структура NDIS_RECEIVE_FILTER_CAPABILITIES используется в элементе ReceiveFilterCapabilities NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES, NDIS_FILTER_ATTACH_PARAMETERS и NDIS_BIND_PARAMETERS структур и возвращаемый результат OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES Запрос OID.
Многие элементы и параметры флагов структуры NDIS_RECEIVE_FILTER_CAPABILITIES действительны, только если драйверу мини-порта разрешено использовать интерфейс VMQ или SR-IOV. Драйвер мини-порта может использовать эти интерфейсы с помощью стандартизированных ключевых слов INF. Дополнительные сведения см. в разделе Обработка стандартизированных ключевых слов INF SR-IOV, VMQ и RSS.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.20 и более поздних версиях. |
Верхняя часть | ntddndis.h (включая Ndis.h) |
См. также раздел
NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES OID_RECEIVE_FILTER_HARDWARE_CAPABILITIESОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по