OID_NIC_SWITCH_ENUM_VPORTS
Сверхуровневый драйвер или приложение пользовательского режима выдает запрос метода идентификатора объекта (OID) OID_NIC_SWITCH_ENUM_VPORTS для получения массива. Каждый элемент в массиве задает атрибуты виртуального порта (VPort), созданного в сетевом коммутаторе сетевого адаптера.
После успешного возврата из этого запроса OID элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на буфер, содержащий следующее:
Структура NDIS_NIC_SWITCH_VPORT_INFO_ARRAY , определяющая количество элементов в массиве.
Массив структур NDIS_NIC_SWITCH_VPORT_INFO . Каждая из этих структур содержит сведения о VPort на сетевом коммутаторе сетевого адаптера.
Примечание Если на сетевом адаптере не созданы виртуальные порты, драйвер устанавливает для элемента NumElements структуры NDIS_NIC_SWITCH_VPORT_INFO_ARRAY значение 0 и NDIS_NIC_SWITCH_VPORT_INFO структуры не возвращаются.
Комментарии
Избыточные драйверы и приложения в пользовательском режиме выдают запросы OID OID_NIC_SWITCH_ENUM_VPORTS для перечисления виртуальных портов, выделенных на коммутаторе сетевого адаптера.
Прежде чем драйвер или приложение отправляет запрос OID, он должен инициализировать структуру NDIS_NIC_SWITCH_VPORT_INFO_ARRAY , которая передается вместе с запросом. При инициализации структуры NDIS_NIC_SWITCH_VPORT_INFO_ARRAY драйвер или приложение должны следовать следующим рекомендациям:
Если флаг NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH установлен в элементе Flags , возвращаются сведения обо всех виртуальных портах, созданных на указанном коммутаторе сетевой карты. Переключатель сетевого адаптера задается элементом SwitchId этой структуры.
Примечание Начиная с Windows Server 2012 интерфейс SR-IOV поддерживает только коммутатор сетевой карты по умолчанию на сетевом адаптере. Независимо от флагов, установленных в элементе Flags , параметру SwitchId необходимо задать значение NDIS_DEFAULT_SWITCH_ID.
Если флаг NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION установлен в элементе Flags , возвращаются сведения обо всех виртуальных портах, подключенных к указанной физической функции PCI Express (PCIe) или виртуальной функции (VF) сетевого адаптера. PF или VF задается элементом AttachedFunctionId этой структуры.
Если для элемента AttachedFunctionId задано значение NDIS_PF_FUNCTION_ID, возвращаются сведения обо всех VPort, включая VPort по умолчанию, подключенных к PF сетевого адаптера. Если для элемента AttachedFunctionId задан допустимый идентификатор VF, сведения возвращаются для всех виртуальных портов в указанный VF.
Примечание Начиная с Windows Server 2012 к VF можно подключить только один неотложимый VPort. Однако к PF можно подключить несколько виртуальных портов (включая VPort по умолчанию).
Если для элемента Flags задано значение 0, возвращаются сведения обо всех виртуальных портах, подключенных к PF или VF на сетевом адаптере. В этом случае значения SwitchId и AttachedFunctionId игнорируются.
Дополнительные сведения см. в разделе Перечисление виртуальных портов в сетевом адаптере.
Коды состояния возврата
NDIS обрабатывает запрос метода OID OID_NIC_SWITCH_ENUM_VPORTS для драйверов минипорта. Драйверы не будут выдавать этот запрос OID.
Когда NDIS обрабатывает запрос OID_NIC_SWITCH_ENUM_VPORTS, он возвращает один из следующих кодов состояния:
Код состояния | Описание |
---|---|
NDIS_STATUS_SUCCESS |
Запрос OID успешно завершен. |
NDIS_STATUS_NOT_SUPPORTED |
Драйвер мини-порта либо не поддерживает интерфейс SR-IOV( с одним корневым интерфейсом виртуализации ввода-вывода), либо не поддерживает его использование. |
NDIS_STATUS_INVALID_PARAMETER |
Один или несколько членов структуры NDIS_NIC_SWITCH_VF_INFO_ARRAY имеют недопустимые значения. |
NDIS_STATUS_INVALID_LENGTH |
Буфер сведений был слишком коротким. NDIS задает значение DATA. METHOD_INFORMATION. Элемент BytesNeeded в NDIS_OID_REQUEST структуру до минимального требуемого размера буфера. |
NDIS_STATUS_FAILURE |
Сбой запроса по другим причинам. |
Требования
Версия |
Поддерживается в NDIS 6.30 и более поздних версиях. |
Заголовок |
Ntddndis.h (включая Ndis.h) |