Поделиться через


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

Структура NDIS_SWITCH_NIC_PARAMETERS задает параметры конфигурации сетевого адаптера, подключенного к порту расширяемого коммутатора Hyper-V.

Синтаксис

typedef struct _NDIS_SWITCH_NIC_PARAMETERS {
  NDIS_OBJECT_HEADER           Header;
  ULONG                        Flags;
  NDIS_SWITCH_NIC_NAME         NicName;
  NDIS_SWITCH_NIC_FRIENDLYNAME NicFriendlyName;
  NDIS_SWITCH_PORT_ID          PortId;
  NDIS_SWITCH_NIC_INDEX        NicIndex;
  NDIS_SWITCH_NIC_TYPE         NicType;
  NDIS_SWITCH_NIC_STATE        NicState;
  NDIS_VM_NAME                 VmName;
  NDIS_VM_FRIENDLYNAME         VmFriendlyName;
  GUID                         NetCfgInstanceId;
  ULONG                        MTU;
  USHORT                       NumaNodeId;
  UCHAR                        PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  UCHAR                        VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  UCHAR                        CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
  BOOLEAN                      VFAssigned;
  ULONG64                      NdisReserved[2];
} NDIS_SWITCH_NIC_PARAMETERS, *PNDIS_SWITCH_NIC_PARAMETERS;

Члены

Header

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

Элемент Typeзаголовка должен иметь значение NDIS_OBJECT_TYPE_DEFAULT. Чтобы указать версию структуры NDIS_SWITCH_NIC_PARAMETERS , необходимо задать для элемента Revisionзаголовка следующее значение:

NDIS_SWITCH_NIC_PARAMETERS_REVISION_1

Исходная версия для NDIS 6.30 и более поздних версий.

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

Flags

Значение ULONG , содержащее побитовое ИЛИ флагов. Определяется следующее значение флага.

Значение Значение
NDIS_SWITCH_NIC_FLAGS_NIC_INITIALIZING
Этот флаг устанавливается, когда OID_SWITCH_NIC_CREATE OID выдается впервые за время существования объекта сетевого адаптера виртуальной машины. Если этот флаг установлен:
  • Расширение Расширяемого коммутатора Hyper-V при необходимости может уменьшить значение элемента MTU в структуре NDIS_SWITCH_NIC_PARAMETERS , если ему нужно зарезервировать запас для инкапсуляции перед тем, как он передает OID вниз по стеку. Расширение не сможет зарезервировать запас инкапсуляции для любого другого типа сетевой карты.
  • Расширение не должно увеличивать значение MTU .
Этот флаг будет установлен, только если элемент NicTypeNdisSwitchNicTypeSynthetic.

NicName

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

Дополнительные сведения см. в разделе «Примечания».

NicFriendlyName

Значение NDIS_SWITCH_NIC_FRIENDLYNAME, указывающее понятное описание сетевого адаптера.

PortId

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

NicIndex

Значение NDIS_SWITCH_NIC_INDEX, указывающее индекс сетевого адаптера, подключенного к порту расширяемого коммутатора, заданному элементом PortId .

Дополнительные сведения о NDIS_SWITCH_NIC_INDEX значениях см. в разделе Значения индекса сетевого адаптера.

NicType

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

NicState

Значение NDIS_SWITCH_NIC_STATE , указывающее текущее состояние сетевого адаптера.

VmName

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

Дочерний раздел Hyper-V также называется виртуальной машиной.

Примечание Этот элемент действителен, только если элемент NicType содержит значение NdisSwitchNicSyntheticNic или NdisSwitchNicEmulatedNic.
 

VmFriendlyName

NetCfgInstanceId

Значение GUID, указывающее значение реестра NetCfgInstanceId базового сетевого адаптера.

Примечание Этот элемент действителен, только если для элемента NicType задано значение NdisSwitchNicTypeExternal или NdisSwitchNicTypeInternal. Значение NetCfgInstanceId не будет действительным до тех пор, пока виртуальный сетевой адаптер не будет инициализирован.
 

MTU

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

Примечание Значение этого элемента может изменяться в течение времени существования сетевого адаптера виртуальной машины. Поэтому расширения должны считывать этот элемент структуры NDIS_SWITCH_NIC_PARAMETERS , передаваемой со следующими идентификаторами OID:
 

NumaNodeId

Значение USHORT , указывающее идентификатор предпочтительного узла NUMA ЦП. На компьютерах, поддерживающих архитектуру NUMA, предпочтительным узлом NUMA является ЦП с наименьшим расстоянием до сетевого адаптера.

Примечание Этот элемент действителен, только если для элемента NicType задано значение NdisSwitchNicTypeSynthetic или NdisSwitchNicTypeEmulated.
 

PermanentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Массив UCHAR , указывающий MAC-адрес управления доступом к мультимедиа, настроенный в разделе узла для сетевого адаптера. Это может отличаться от MAC-адреса, используемого в настоящее время сетевым адаптером.

VMMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Массив UCHAR , указывающий MAC-адрес, настроенный на сетевом адаптере внутри самой виртуальной машины. Поле содержит все нули для сетевых адаптеров, отличных от виртуальных машин. Если параметр AllowMacSpoofing (из NDIS_SWITCH_PORT_PROPERTY_SECURITY) имеет значение TRUE, этот адрес также будет применяться к CurrentMacAddress.

CurrentMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH]

Массив UCHAR , указывающий MAC-адрес, который в настоящее время используется в коммутаторе для сетевого адаптера. Если значения AllowMacSpoofing и AllowTeaming имеют значение FALSE, это значение будет равно PermanentMacAddress. Если параметр AllowMacSpoofing имеет значение TRUE, это значение будет равно VMMacAddress. Если параметр AllowTeaming имеет значение TRUE и на виртуальной машине была выполнена отработка отказа при объединенности, currentMacAddress будет равен MAC-адресу, который был переключен на сетевой адаптер, или PermanentMacAddress , если отработка отказа не была выполнена.

VFAssigned

Значение BOOLEAN , если задано значение TRUE, указывает, что сетевой адаптер подключен к виртуальной функции PCI Express (PCIe) (VF). VF предоставляется базовым физическим сетевым адаптером, поддерживающим интерфейс виртуализации однокорневого ввода-вывода (SR-IOV).

Дополнительные сведения см. в разделе «Примечания».

Примечание Элемент VFAssigned действителен, только если элемент NicType содержит значение NdisSwitchNicTypeEmulated или NdisSwitchNicTypeSynthetic. Этот элемент должен иметь значение FALSE , если элемент NicType содержит значение NdisSwitchNicTypeExternal или NdisSwitchNicTypeInternal.
 

NdisReserved[2]

Комментарии

Запросы OID OID_SWITCH_NIC_ARRAY возвращают структуру NDIS_SWITCH_NIC_ARRAY , содержащую ноль или несколько элементов. Каждый элемент имеет формат структуры NDIS_SWITCH_NIC_PARAMETERS .

Структура NDIS_SWITCH_NIC_PARAMETERS также используется в следующих запросах OID:

Примечание Типы данных NDIS_SWITCH_NIC_NAME, NDIS_SWITCH_NIC_FRIENDLYNAME, NDIS_VM_NAME и NDIS_VM_FRIENDLYNAME определяются IF_COUNTED_STRING структурой . Строка, определяемая этой структурой, не обязательно должна заканчиваться null. Однако длина строки должна быть задана в элементе Length этой структуры. Если строка заканчивается null, член Length не должен содержать завершающий символ NULL.
 

Рекомендации по элементам NicType и NicName

В зависимости от значения элемента NicType формат элемента NicName выглядит следующим образом:
  • Если для элемента NicType задано значение NdisSwitchNicTypeExternal, значением элемента NicName является уникальный идентификатор экземпляра (InstanceId) физического сетевого адаптера, привязанного к внешнему сетевому адаптеру. Этот тип сетевого адаптера предоставляется в операционной системе управления, работающей в родительском разделе Hyper-V.

    Внешний сетевой адаптер обеспечивает подключение к физическому сетевому интерфейсу, который доступен на узле. Доступ к внешнему сетевому адаптеру может осуществляться из родительского раздела Hyper-V и всех дочерних секций.

    Примечание Значение InstanceId создается диспетчером Plug and Play, который выполняется в операционной системе управления.
     
  • Если для элемента NicType задано значение NdisSwitchNicTypeInternal, значением элемента NicName является отображаемое имя устройства, определяющее внутренний сетевой адаптер. Этот тип сетевого адаптера предоставляется в операционной системе управления родительского раздела Hyper-V.

    Доступ к внутреннему сетевому адаптеру может осуществляться из родительского раздела Hyper-V и всех дочерних секций. Однако внутренний сетевой адаптер не подключается к физическому сетевому интерфейсу, который доступен на узле.

    Примечание Отображаемое имя устройства создается уровнем управления WMI Hyper-V, который выполняется в операционной системе управления.
     
  • Для всех остальных значений элементов NicType значение элемента NicName однозначно присваивается искусственному или эмулированному сетевому адаптеру с помощью интерфейса управления политиками. Эти типы сетевых адаптеров предоставляются в гостевой операционной системе, которая выполняется дочерним разделом Hyper-V.

Рекомендации по члену VFAssigned

VF PCIe создается и выделяется базовым физическим адаптером, поддерживающим интерфейс SR-IOV. После создания PCIe VF стек виртуализации присоединяет или назначает дочерний раздел Hyper-V к VF. Гостевая операционная система, запущенная в этом разделе, предоставляет сетевой адаптер виртуальной машины, подключенный или назначенный базовому физическому адаптеру SR-IOV.

Если для элемента VFAssigned задано значение TRUE, пакеты направляются непосредственно между базовым физическим сетевым адаптером SR-IOV и виртуальным адаптером. Однако, поскольку расширяемый коммутатор не участвует в доставке пакетов, политики портов расширяемого коммутатора, такие как списки управления доступом (ACL), не применяются к этим пакетам.

Расширение может удалить назначение VF, выдав NDIS_STATUS_SWITCH_PORT_REMOVE_VF указание состояния. Это означает, что пакеты доставляются через расширяемый порт коммутатора, а не непосредственно между сетевым адаптером виртуальной машины и физическим адаптером SR-IOV. Это позволяет применять политики портов расширяемого коммутатора к пакетам, которые принимаются или отправляются через порт расширяемого коммутатора. Когда расширение указывает состояние NDIS_STATUS_SWITCH_PORT_REMOVE_VF , оно указывает, к какому расширяемому порту коммутатора подключен виртуальный сетевой адаптер.

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

Требования

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

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

NDIS_OBJECT_HEADER

NDIS_STATUS_SWITCH_PORT_REMOVE_VF

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_STATE

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY

OID_SWITCH_NIC_CONNECT

OID_SWITCH_NIC_CREATE

OID_SWITCH_NIC_DELETE

OID_SWITCH_NIC_DISCONNECT

OID_SWITCH_NIC_SAVE

OID_SWITCH_NIC_SAVE_COMPLETE

OID_SWITCH_NIC_UPDATED