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.
Элемент индекса структуры 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 не будет выдан, расширение не должно выполнять следующее:
Создайте любой трафик пакета к подключению сетевого адаптера на порту расширяемого коммутатора, для которого был выдан запрос OID_SWITCH_NIC_CREATE OID.
Перенаправлять или создавать запросы OID OID_SWITCH_NIC_REQUEST на базовый сетевой адаптер, для которого был выдан запрос OID_SWITCH_NIC_CREATE OID.
Переадресация или получение сведений о состоянии NDIS NDIS_STATUS_SWITCH_NIC_STATUS из базового сетевого адаптера, для которого был выдан запрос OID_SWITCH_NIC_CREATE OID.
Вызовите 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 (include Ndis.h) |