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 на физический сетевой адаптер, привязанный к внешнему сетевому адаптеру. Чтобы сделать это, расширение должно выполнить следующие действия.
Расширение вызывает ReferenceSwitchNic для увеличения счетчика ссылок для индекса целевого физического сетевого адаптера. Это гарантирует, что интерфейс расширяемого коммутатора не будет удалять подключение физического сетевого адаптера, пока его счетчик ссылок не является ненулевой.
Примечание Расширяемый интерфейс коммутатора может отключить подключение физического сетевого адаптера, пока его счетчик ссылок не является нулевым. Дополнительные сведения см. в разделе Hyper-V Расширяемый порт коммутатора и состояния сетевых адаптеров.
Расширение инкапсулирует запрос OID, инициализировав структуру NDIS_SWITCH_NIC_OID_REQUEST следующим образом:
Элемент DestinationPortId должен иметь идентификатор порта расширяемого коммутатора, к которому подключен внешний сетевой адаптер.
Элемент DestinationNicIndex должен иметь значение ненулевого индекса базового физического сетевого адаптера.
Если расширение создается от имени дочерней секции Hyper-V, SourcePortId и члены SourceNicIndex задаются соответствующими значениями для порта и сетевого адаптера, используемого секцией. В противном случае для элементов SourcePortId и SourceNicIndex задано значение нулю.
Например, если расширение управляет ресурсами аппаратной разгрузки для дочерней секции, необходимо задать SourcePortId и членов SourceNicIndex, чтобы указать, для какой секции требуется инкапсулированный запрос аппаратной разгрузки OID.
Элемент OidRequest должен иметь указатель на инициализированную NDIS_OID_REQUEST структуру для инкапсулированного запроса OID.
Расширение вызывает NdisFOidRequest для пересылки запроса OID на указанный порт расширяемого коммутатора назначения и сетевого адаптера.
Когда NDIS вызывает функцию FilterOidRequestComplete, расширение вызывает DereferenceSwitchNic, чтобы очистить счетчик ссылок для индекса целевого физического сетевого адаптера.
Коды состояния возврата
Базовый мини-порт расширяемого коммутатора завершает запрос запроса OID OID_SWITCH_NIC_REQUEST и возвращает один из следующих кодов состояния.
Код состояния | Описание |
---|---|
NDIS_STATUS_SUCCESS |
Запрос OID успешно завершен. |
NDIS_STATUS_Xxx |
Запрос завершился ошибкой по другим причинам. |
Требования
Версия |
Поддерживается в NDIS 6.30 и более поздних версиях. |
Заголовок |
Ntddndis.h (include Ndis.h) |