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


OID_SWITCH_NIC_REQUEST

Запрос метода идентификатора объекта (OID) OID_SWITCH_NIC_REQUEST используется для инкапсуляции и пересылки запросов OID к внешнему сетевому адаптеру расширяемого коммутатора Hyper-V. Это позволяет доставить инкапсулированный запрос OID в драйвер для базового физического сетевого адаптера, привязанного к внешнему сетевому адаптеру.

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

Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_SWITCH_NIC_OID_REQUEST . Эта структура указывает сведения о пересылке для запроса OID. Эта структура также содержит указатель на исходную структуру NDIS_OID_REQUEST переадресуемого запроса OID.

Комментарии

Когда запросы OID поступают в интерфейс расширяемого коммутатора Hyper-V, он инкапсулирует их для пересылки по пути управления расширяемым коммутатором. Эти запросы OID включают следующее:

  • Аппаратная разгрузка запросов OID, включая запросы на безопасность протокола ИНТЕРНЕТА (IPsec), очередь виртуальных машин (VMQ) и виртуализацию однокорневого ввода-вывода (SR-IOV). Эти запросы OID выдаются избыточным протоколом или драйвером фильтра, который выполняется в операционной системе управления родительского раздела Hyper-V.

    Когда эти запросы OID поступают в интерфейс расширяемого коммутатора, край протокола расширяемого коммутатора инкапсулирует запрос OID в структуре NDIS_SWITCH_NIC_OID_REQUEST . Ребро протокола задает члены этой структуры следующим образом:

    • Для элементов DestinationPortId и DestinationNicIndex заданы соответствующие значения для внешнего сетевого адаптера.

    • Если запрос OID был получен из дочерней секции Hyper-V, то членам SourcePortId и SourceNicIndex присваиваются соответствующие значения для порта и сетевого адаптера, которые используются секцией. В противном случае элементы SourcePortId и SourceNicIndex будут равны нулю.

      Примечание Расширение должно сохранять значения этих членов, если оно пересылает или перенаправляет запрос OID.

    • Члену OidRequest присваивается указатель на структуру NDIS_OID_REQUEST для инкапсулированного запроса OID.

    Затем ребро протокола отправляет OID_SWITCH_NIC_REQUEST запрос на пересылку инкапсулированного запроса OID по пути управления расширяемым коммутатором внешнему сетевому адаптеру.

    Базовое расширение переадресации может перенаправлять инкапсулированные аппаратные запросы OID на физический сетевой адаптер, привязанный к внешнему сетевому адаптеру. Например, если расширение поддерживает физические сетевые адаптеры от команды расширяемых коммутаторов, привязанных к внешнему сетевому адаптеру, оно может перенаправить запрос OID_SWITCH_NIC_REQUEST физическому адаптеру в группе отработки отказа балансировки нагрузки (LBFO), которая поддерживает разгрузку оборудования. Дополнительные сведения об этой процедуре см. в разделе Управление аппаратными запросами разгрузки OID в физические сетевые адаптеры.

    Дополнительные сведения о командах расширяемых коммутаторов см. в разделе Типы конфигураций физических сетевых адаптеров.

  • Многоадресные запросы OID, включая OID_802_3_ADD_MULTICAST_ADDRESS и OID_802_3_DELETE_MULTICAST_ADDRESS. Эти запросы OID выдаются с помощью чрезмерного протокола и драйверов фильтров, которые выполняются в операционной системе управления или гостевой операционной системе дочернего раздела Hyper-V.

    Когда эти запросы OID поступают в интерфейс расширяемого коммутатора, край протокола расширяемого коммутатора инкапсулирует запрос OID в структуре NDIS_SWITCH_NIC_OID_REQUEST . Пограничный протокол также задает членам SourcePortId и SourceNicIndex соответствующие значения для порта и сетевого адаптера, из которого был создан запрос OID. Затем ребро протокола отправляет OID_SWITCH_NIC_REQUEST запрос на пересылку инкапсулированного запроса OID по пути управления расширяемым коммутатором для проверки базовыми расширениями.

    Примечание В этом случае ребро протокола задает для элементов DestinationPortId и DestinationNicIndex нулевое значение. Это указывает, что инкапсулированный запрос OID должен быть доставлен в расширения в пути элемента управления.

    Базовые расширения пересылки могут проверять эти инкапсулированные запросы OID и сохранять указанные в них сведения об адресе многоадресной рассылки. Например, эти сведения могут потребоваться расширению, если оно отправляет пакеты многоадресной рассылки, которые оно перенаправляет на расширяемый порт коммутатора.

    Дополнительные сведения см. в разделе Пересылка запросов OID из дочерней секции Hyper-V.

Расширение переадресации также может выдавать OID_SWITCH_NIC_REQUEST для пересылки инкапсулированных запросов OID физическому сетевому адаптеру, привязанного к внешнему сетевому адаптеру. Это позволяет расширению создать собственный запрос OID или перенаправить существующий запрос OID на физический сетевой адаптер, привязанный к внешнему сетевому адаптеру. Для этого расширение должно выполнить следующие действия:

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

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

  2. Расширение инкапсулирует запрос OID путем инициализации структуры NDIS_SWITCH_NIC_OID_REQUEST следующим образом:

    • Член DestinationPortId должен иметь идентификатор порта расширяемого коммутатора, к которому подключен внешний сетевой адаптер.

    • Член DestinationNicIndex должен иметь значение ненулевого индекса базового физического сетевого адаптера.

    • Если расширение создается от имени дочернего раздела Hyper-V, члены SourcePortId и SourceNicIndex задаются соответствующими значениями для порта и сетевого адаптера, которые используются секцией. В противном случае элементы SourcePortId и SourceNicIndex будут равны нулю.

      Например, если расширение управляет ресурсами аппаратной разгрузки для дочернего раздела, оно должно задать элементы SourcePortId и SourceNicIndex , чтобы указать, для какой секции инкапсулирован запрос OID разгрузки оборудования.

    • Элемент OidRequest должен иметь указатель на инициализированную структуру NDIS_OID_REQUEST для инкапсулированного запроса OID.

  3. Расширение вызывает NdisFOidRequest для перенаправления запроса OID на указанный порт расширяемого коммутатора назначения и сетевой адаптер.

  4. Когда NDIS вызывает функцию FilterOidRequestComplete , расширение вызывает DereferenceSwitchNic , чтобы очистить счетчик ссылок для индекса целевого физического сетевого адаптера.

Коды состояния возврата

Базовый край минипорта расширяемого коммутатора завершает запрос OID OID_SWITCH_NIC_REQUEST и возвращает один из следующих кодов состояния.

Код состояния Описание

NDIS_STATUS_SUCCESS

Запрос OID успешно завершен.

NDIS_STATUS_Xxx

Сбой запроса по другим причинам.

Требования

Версия

Поддерживается в NDIS 6.30 и более поздних версиях.

Заголовок

Ntddndis.h (включая Ndis.h)

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


NDIS_STATUS_INDICATION

NDIS_SWITCH_NIC_OID_REQUEST