OID_SWITCH_NIC_CREATE
Граница протокола расширяемого коммутатора Hyper-V выдает запрос на набор идентификатора объекта (OID) OID_SWITCH_NIC_CREATE для уведомления базовых расширений расширяемого коммутатора о том, что устанавливается новое подключение между портом расширяемого коммутатора и внешним или виртуальным сетевым адаптером. После полной установки подключения граница протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CONNECT.
Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на NDIS_SWITCH_NIC_PARAMETERS структуру.
Комментарии
Элемент PortId структуры NDIS_SWITCH_NIC_PARAMETERS указывает расширяемый порт коммутатора, для которого создается уведомление о создании. Расширение расширяемого коммутатора может получить сведения о параметрах для этого и других портов расширяемого коммутатора, отправляя запросы OID OID_SWITCH_PORT_ARRAY.
Элемент Index структуры NDIS_SWITCH_NIC_PARAMETERS указывает индекс сетевого адаптера, для которого создается уведомление о создании. Сетевой адаптер с указанным значением Index подключается к порту расширяемого коммутатора, заданному элементом PortId . Дополнительные сведения об этих значениях индекса см. в разделе Значения индекса сетевого адаптера.
Когда он получает запрос набора OID OID_SWITCH_NIC_CREATE, расширение должно следовать следующим рекомендациям:
Расширение не должно изменять структуру NDIS_SWITCH_NIC_PARAMETERS , связанную с запросом OID.
Запрос OID_SWITCH_NIC_CREATE только уведомляет расширение о том, что запускается новое расширяемое подключение коммутатора и что трафик пакетов вскоре может начать происходить через указанный порт. Однако расширение не может использовать порт, пока граница протокола расширяемого коммутатора не выполним запрос набора OID OID_SWITCH_NIC_CONNECT. До выдачи этого идентификатора идентификатора расширения не должно выполняться следующее:
Создайте любой трафик пакетов к подключению сетевого адаптера через порт расширяемого коммутатора, для которого был выдан запрос OID_SWITCH_NIC_CREATE OID.
Перенаправлять или создавать запросы OID OID_SWITCH_NIC_REQUEST базовому сетевому адаптеру, для которого был выдан запрос OID_SWITCH_NIC_CREATE OID.
Переадресация или источник состояния NDIS указывает на NDIS_STATUS_SWITCH_NIC_STATUS от базового сетевого адаптера, для которого был выдан запрос OID OID_SWITCH_NIC_CREATE.
Вызовите ReferenceSwitchNic , чтобы увеличить счетчик ссылок расширяемого коммутатора для указанного подключения сетевого адаптера на порту расширяемого коммутатора.
Примечание Расширение может перехватывать отправку или получение пакетов для указанного порта между запросами OID OID_SWITCH_NIC_CREATE и OID_SWITCH_NIC_CONNECT. В этом случае расширение должно пересылать запросы на отправку или получение пакетов, а не отменять их.
Расширение может наказать вето на уведомление о создании, возвращая NDIS_STATUS_DATA_NOT_ACCEPTED для запроса OID. Например, если расширение не может соответствовать настроенным политикам на указанном порту, расширение должно наказать вето на уведомление о создании.
Если расширение возвращает другие коды состояния NDIS_STATUS_Xxx , уведомление о создании также наложено вето. Однако возврат кодов состояния для временных сценариев, таких как возврат NDIS_STATUS_RESOURCES, может привести к повторной попытке уведомления о создании.
Если расширение не налодит вето на запрос OID, оно должно отслеживать состояние по завершении запроса. Расширение должно сделать это, чтобы определить, был ли запрос OID наложен вето базовыми расширениями в пути управления расширяемым коммутатором или интерфейсом расширяемого коммутатора.
Примечание Расширение может наказать вето на запрос OID, только если член индексаструктуры NDIS_SWITCH_NIC_PARAMETERS указывает нулевое значение индекса сетевого адаптера.
Если расширение не наложит вето на уведомление о создании, оно должно вызвать NdisFOidRequest , чтобы перенаправить этот запрос OID в базовые расширения в стеке драйвера расширяемого коммутатора.
Примечание Расширение должно отслеживать состояние завершения этого запроса OID. Расширение делает это, чтобы определить, наложили ли вето на уведомление о создании базовые расширения в стеке драйвера расширяемого коммутатора.
Если расширение вызывает NdisFOidRequest для переадресации этого запроса OID, расширение не будет сразу получать трафик пакетов в порт расширяемого коммутатора или из порта расширяемого коммутатора. Кроме того, расширение не может немедленно внедрить отправку или получение трафика для порта расширяемого коммутатора.
Расширение может перенаправить трафик пакета на порт расширяемого коммутатора только после того, как ребро протокола расширяемого коммутатора выдает запрос на набор OID OID_SWITCH_NIC_CONNECT.
Примечание В некоторых ситуациях трафик пакетов может перенаправиться расширяемым коммутатором на порт до отправки запроса на набор OID OID_SWITCH_NIC_CONNECT .
Внешний сетевой адаптер расширяемого коммутатора может быть привязан к одному или нескольким базовым физическим адаптерам. Для каждого физического сетевого адаптера, привязанного к внешнему сетевому адаптеру, граница протокола расширяемого коммутатора выдает отдельный запрос набора OID OID_SWITCH_NIC_CREATE. Каждый запрос на набор OID указывает другое значение индекса подключения сетевого адаптера. Дополнительные сведения об этих значениях индекса см. в разделе Значения индекса сетевого адаптера.
Расширение должно поддерживать состояние подключения для каждого базового физического адаптера. Дополнительные сведения о различных конфигурациях, в которых физические сетевые адаптеры могут быть привязаны к внешнему сетевому адаптеру, см. в разделе Типы конфигураций физического сетевого адаптера.
Дополнительные сведения о состояниях расширяемых портов коммутатора и подключений к сетевым адаптерам см. в статье Состояния порта расширяемого коммутатора Hyper-V и сетевых адаптеров.
Примечание Расширение не должно выдавать собственные запросы на набор OID OID_SWITCH_NIC_CREATE.
Коды состояния возврата
Если расширение завершает запрос на набор OID OID_SWITCH_NIC_CREATE, оно возвращает один из следующих кодов состояния.
Код состояния | Описание |
---|---|
NDIS_STATUS_DATA_NOT_ACCEPTED |
Расширение навело вето на уведомление о создании. |
NDIS_STATUS_RESOURCES |
Расширение наложено вето на уведомление о создании из-за нехватки ресурсов. |
NDIS_STATUS_Xxx |
Расширение наложено вето на уведомление о создании по другим причинам. |
Примечание Если расширение завершает запрос набора OID, оно не должно возвращать NDIS_STATUS_SUCCESS.
Если расширение не завершает запрос набора OID OID_SWITCH_NIC_CREATE, запрос выполняется базовым краем мини-порта расширяемого коммутатора. Базовая граница мини-порта возвращает следующий код состояния для этого запроса на набор OID:
Код состояния | Описание |
---|---|
NDIS_STATUS_SUCCESS |
Запрос OID успешно завершен. |
Требования
Версия |
Поддерживается в NDIS 6.30 и более поздних версиях. |
Заголовок |
Ntddndis.h (включая Ndis.h) |