структура NDIS_NIC_SWITCH_CAPABILITIES (ntddndis.h)

Структура NDIS_NIC_SWITCH_CAPABILITIES определяет возможности сетевого коммутатора на сетевом адаптере.

Синтаксис

typedef struct _NDIS_NIC_SWITCH_CAPABILITIES {
  NDIS_OBJECT_HEADER Header;
  ULONG              Flags;
  ULONG              NdisReserved1;
  ULONG              NumTotalMacAddresses;
  ULONG              NumMacAddressesPerPort;
  ULONG              NumVlansPerPort;
  ULONG              NdisReserved2;
  ULONG              NdisReserved3;
  ULONG              NicSwitchCapabilities;
  ULONG              MaxNumSwitches;
  ULONG              MaxNumVPorts;
  ULONG              NdisReserved4;
  ULONG              MaxNumVFs;
  ULONG              MaxNumQueuePairs;
  ULONG              NdisReserved5;
  ULONG              NdisReserved6;
  ULONG              NdisReserved7;
  ULONG              MaxNumQueuePairsPerNonDefaultVPort;
  ULONG              NdisReserved8;
  ULONG              NdisReserved9;
  ULONG              NdisReserved10;
  ULONG              NdisReserved11;
  ULONG              NdisReserved12;
  ULONG              MaxNumMacAddresses;
  ULONG              NdisReserved13;
  ULONG              NdisReserved14;
  ULONG              NdisReserved15;
  ULONG              NdisReserved16;
  ULONG              NdisReserved17;
  ULONG              MaxNumRssCapableNonDefaultPFVPorts;
  ULONG              NumberOfIndirectionTableEntriesForDefaultVPort;
  ULONG              NumberOfIndirectionTableEntriesPerNonDefaultPFVPort;
  ULONG              MaxNumQueuePairsForDefaultVPort;
} NDIS_NIC_SWITCH_CAPABILITIES, *PNDIS_NIC_SWITCH_CAPABILITIES;

Члены

Header

Тип, редакция и размер структуры NDIS_NIC_SWITCH_CAPABILITIES . Этот элемент имеет формат структуры NDIS_OBJECT_HEADER .

Драйвер мини-порта должен задать для элемента Typeзаголовка значение NDIS_OBJECT_TYPE_DEFAULT. Чтобы указать версию структуры NDIS_NIC_SWITCH_CAPABILITIES , драйвер должен задать для члена Редакциизаголовка одно из следующих значений:

NDIS_NIC_SWITCH_CAPABILITIES_REVISION_3

Добавлены члены интерфейса RSS для NDIS 6.60.

Примечание Версия 3 этой структуры поддерживается только в Windows Server 2016 и более поздних версиях Windows Server.

 

Задайте для элемента Размер значение NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_3.

NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2

Добавлены члены интерфейса sr-IOV для NDIS 6.30.

Примечание Версия 2 этой структуры поддерживается только в Windows Server 2012 и более поздних версиях Windows Server.

 

Задайте для элемента Размер значение NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2.

NDIS_NIC_SWITCH_CAPABILITIES_REVISION_1

Исходная версия для NDIS 6.20.

Задайте для элемента Размер значение NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_1.

Flags

Значение ULONG, содержащее побитовое ИЛИ флагов. Этот элемент зарезервирован для NDIS.

NdisReserved1

Зарезервировано для NDIS.

NumTotalMacAddresses

Значение ULONG, содержащее общее количество MAC-адресов, поддерживаемых сетевым адаптером.

Примечание Для версии 2 и более поздних версий этой структуры драйверы должны задать для этого элемента нулевое значение.
 

NumMacAddressesPerPort

Значение ULONG, содержащее количество MAC-адресов, поддерживаемых для каждого порта.

Примечание Для версии 2 и более поздних версий этой структуры драйверы должны задать для этого элемента нулевое значение.
 

NumVlansPerPort

Значение ULONG, содержащее количество виртуальных локальных сетей, поддерживаемых для каждого порта.

Примечание Для версии 2 и более поздних версий этой структуры драйверы должны задать для этого элемента нулевое значение.
 

NdisReserved2

Зарезервировано для NDIS.

NdisReserved3

Зарезервировано для NDIS.

NicSwitchCapabilities

Значение ULONG, содержащее побитовое ИЛИ следующих флагов, определяющих возможности коммутатора сетевой карты:

NDIS_NIC_SWITCH_CAPS_RSS_ON_PF_VPORTS_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Указывает, что сетевой адаптер поддерживает VMMQ для VPorts PF.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Если задано значение 1, указывает, что сетевой адаптер может поддерживать таблицы косвенного обращения VPort по каждому PF.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Если задано значение 1, указывает, что сетевой адаптер поддерживает настройку другой хэш-функции для каждого VPort PF. Если этот флаг установлен, необходимо также задать NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED .

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_TYPE_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Если задано значение 1, указывает, что сетевой адаптер поддерживает настройку разных типов хэша для каждого порта PF VPort.

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_KEY_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Если задано значение 1, указывает, что сетевой адаптер поддерживает настройку другого секретного ключа хэша для VPort PF. Этот флаг должен быть установлен, если задано NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_HASH_FUNCTION_SUPPORTED .

NDIS_NIC_SWITCH_CAPS_RSS_PER_PF_VPORT_INDIRECTION_TABLE_SIZE_RESTRICTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях. Он был представлен в NDIS 6.60.

Если задано значение 1, указывает, что сетевой адаптер имеет ограничение на размер таблицы косвенного обращения для VPorts PF. Этот флаг заставляет издателя RSS OID использовать размер таблицы косвенного обращения VPort по каждому PF, равный количеству очередей VPort, округленных до следующего значения из двух. Это относится только к VPorts PF и не применяется к VF VPorts. Этот флаг можно объединить с флагом NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED (разные VPorts PF могут иметь разное количество очередей). Этот флаг не позволяет пользователям VMMQ выполнять детализированное управление очередью.

NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED

Примечание Этот флаг поддерживается в Windows Server 2016 и более поздних версиях.

Этот флаг, появившийся в NDIS 6.60, указывает, что коммутатор сетевого адаптера можно создать без использования SR-IOV. Этот флаг позволяет отделить коммутатор сетевого адаптера от ключевое слово *SRIOV. Это означает, что коммутатор сетевого адаптера можно создать с помощью OID_NIC_SWITCH_CREATE_SWITCH даже если *SRIOV = 0.

Дополнительные сведения о возможностях переключения сетевого адаптера для драйверов NDIS 6.60 и более поздних версий см. в статье Определение возможностей коммутатора сетевого адаптера.

NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED

Этот флаг указывает, что коммутатор сетевого адаптера поддерживает аппаратную фильтрацию пакетов на основе идентификатора виртуальной локальной сети (VLAN).

Примечание Этот флаг следует устанавливать только в том случае, если коммутатор сетевого адаптера поддерживает фильтрацию идентификаторов виртуальной локальной сети в отдельных виртуальных портах SR-IOV (VPorts).
 

NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED

Этот флаг указывает, что коммутатор сетевой карты может поддерживать конфигурацию модерации прерываний в отдельных виртуальных портах.

NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED

Этот флаг указывает, что коммутатор сетевой карты может настроить разное количество пар очередей для каждого неразрешимого VPort. Это означает, что каждый неразрешимый VPort можно настроить асимметрично, чтобы иметь разное количество пар очередей.

Если этот флаг не задан, все неразрешимые виртуальные порты должны быть настроены симметрично, чтобы иметь одинаковое количество пар очередей.

Независимо от того, установлен ли этот флаг, коммутатор сетевой карты должен поддерживать возможность установки количества пар очередей в VPort по умолчанию. Они могут отличаться от количества пар очередей, заданных в неразрешаемых виртуальных портах.

Примечание Пара очередей состоит из очереди передачи и очереди получения. Пары очередей, связанные с VPort по умолчанию, настраиваются во время создания коммутатора с помощью запроса метода OID OID_NIC_SWITCH_CREATE_SWITCH. Одна или несколько пар очередей настраиваются в нестандартном VPort с помощью запроса метода OID OID_NIC_SWITCH_CREATE_VPORT.
 
Дополнительные сведения см. в статье Симметричное и асимметричное назначение пар очередей.

NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED

Этот флаг указывает, что для масштабирования на стороне получения (RSS) можно использовать пары очередей из виртуальных портов, подключенных к виртуальной функции PCI Express (PCIe) (VF). Драйвер мини-порта VF выполняется в гостевой операционной системе дочернего раздела Hyper-V.

Если этот флаг установлен, драйвер мини-порта поддерживает RSS на виртуальном компьютере и может использовать одну или несколько пар очередей из нестандартного VPort для RSS.

Примечание Начиная с Windows Server 2012, к VF можно подключить только один неразрешимый порт VPort.
 

NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL

Этот флаг указывает, что виртуальные порты, не являющиеся стандартными, можно создать не зарезервированным способом из пула VPort на сетевом адаптере. Это позволяет создавать и назначать по мере необходимости доступные виртуальные порты, не являющиеся стандартными, и выделенными виртуальными машинами. Если сетевой адаптер поддерживает интерфейс очереди виртуальных машин (VMQ), для очередей получения виртуальных машин можно также использовать неисключаемые виртуальные порты, назначенные PF.

Примечание VPort по умолчанию всегда зарезервирован для назначения PF.
 
Если этот флаг установлен, создаются и назначаются PF и выделенным виртуальным машинам доступные неразрешимые виртуальные порты. Однако этот механизм не резервирует неотделимые виртуальные порты для создания и назначения виртуальных машин. В результате могут возникнуть ситуации, когда VF не может быть назначен VPort, если пул был исчерпан из доступных виртуальных портов.
Примечание Если VF не может быть назначен VPort, трафик пакетов через VF происходит по пути искусственных данных SR-IOV. Дополнительные сведения об этом пути данных см. в разделе Пути к данным SR-IOV.
 
Если этот флаг не задан, создание и назначение неотобмещаемых портов VF зарезервировано для назначения VF. Можно создать и назначить PF дополнительные неразрешимые виртуальные порты.

Дополнительные сведения о VMQ см. в разделе Очередь виртуальных машин (VMQ).

Дополнительные сведения о виртуальных портах см. в разделе Управление виртуальными портами.

MaxNumSwitches

Значение ULONG, указывающее максимальное количество коммутаторов, которые можно создать в физической функции (PF) PCI Express (PCIe) сетевого адаптера.

Примечание Начиная с Windows Server 2012, Windows поддерживает только сетевой адаптер по умолчанию. Поэтому этому элементу всегда необходимо задать значение one.
 

MaxNumVPorts

Значение ULONG, указывающее максимальное количество виртуальных портов, которые можно создать на сетевом адаптере. Сюда входит VPort по умолчанию, который всегда подключен к PF.

Примечание Коммутатор сетевого адаптера должен поддерживать по крайней мере (MaxNumVFs + 1) виртуальные порты.
 

NdisReserved4

Зарезервировано для NDIS.

MaxNumVFs

Значение ULONG, указывающее максимальное количество виртуальных машин, которые можно создать в коммутаторе сетевого адаптера.

Примечание В зависимости от доступных аппаратных ресурсов сетевого адаптера драйвер мини-порта может задать члену MaxNumVFs значение меньше, чем его *NumVFs ключевое слово. Дополнительные сведения об этом ключевое слово см. в статье Стандартизированные ключевые слова INF для SR-IOV.
 

MaxNumQueuePairs

Значение ULONG, указывающее максимальное количество пар очередей, которые могут быть назначены всем VPorts. Сюда входит VPort по умолчанию, подключенный к PF.

Примечание Это значение должно быть больше или равно значению MaxNumVPorts.
 

NdisReserved5

Зарезервировано для NDIS.

NdisReserved6

Зарезервировано для NDIS.

NdisReserved7

Зарезервировано для NDIS.

MaxNumQueuePairsPerNonDefaultVPort

Значение ULONG, указывающее максимальное количество пар очередей, которые могут быть назначены неразрешимому порту VPort.

Это значение указывается в полномочиях 2 и обеспечивает асимметричную конфигурацию и назначение пар очередей для VPorts. Дополнительные сведения см. в статье Симметричное и асимметричное назначение пар очередей.

NdisReserved8

Зарезервировано для NDIS.

NdisReserved9

Зарезервировано для NDIS.

NdisReserved10

Зарезервировано для NDIS.

NdisReserved11

Зарезервировано для NDIS.

NdisReserved12

Зарезервировано для NDIS.

MaxNumMacAddresses

Значение ULONG, указывающее максимальное количество фильтров одноадресных MAC-адресов, доступных в коммутаторе сетевой карты.

Примечание Это значение должно быть больше или равно значению MaxNumVPorts. Это позволяет настроить для каждого порта VPort (включая VPort по умолчанию) по крайней мере один одноадресный фильтр MAC-адресов.
 

NdisReserved13

Зарезервировано для NDIS.

NdisReserved14

Зарезервировано для NDIS.

NdisReserved15

Зарезервировано для NDIS.

NdisReserved16

Зарезервировано для NDIS.

NdisReserved17

Зарезервировано для NDIS.

MaxNumRssCapableNonDefaultPFVPorts

Значение ULONG, указывающее максимальное число PFVPorts с поддержкой RSS по умолчанию.

NumberOfIndirectionTableEntriesForDefaultVPort

Значение ULONG, указывающее количество записей таблицы косвенного обращения для VPort по умолчанию.

NumberOfIndirectionTableEntriesPerNonDefaultPFVPort

Значение ULONG, указывающее количество записей таблицы косвенного обращения для каждого нестандартного PFVPort.

MaxNumQueuePairsForDefaultVPort

Значение ULONG, указывающее максимальное количество пар очередей, которые могут быть назначены VPort по умолчанию.

Это значение указывается в полномочиях 2 и обеспечивает асимметричную конфигурацию и назначение пар очередей для VPorts. Дополнительные сведения см. в статье Симметричное и асимметричное назначение пар очередей.

Комментарии

Структура NDIS_NIC_SWITCH_CAPABILITIES используется в членах следующих структур:

Запросы OID OID_NIC_SWITCH_CURRENT_CAPABILITIES и OID_NIC_SWITCH_HARDWARE_CAPABILITIES вернуть структуру NDIS_NIC_SWITCH_CAPABILITIES .

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.20 и более поздних версиях.
Верхняя часть ntddndis.h (включая Ndis.h)

См. также раздел

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

OID_NIC_SWITCH_CREATE_VPORT

OID_NIC_SWITCH_CURRENT_CAPABILITIES

OID_NIC_SWITCH_HARDWARE_CAPABILITIES