Обработка запроса OID_NIC_SWITCH_CREATE_SWITCH
NDIS выдает запрос метода идентификатора объекта (OID) OID_NIC_SWITCH_CREATE_SWITCH выполнить следующие действия:
Включите коммутатор сетевого адаптера на сетевом адаптере, который был статически создан минипорт-драйвером для физической функции PCI Express (PCIe). PF — это аппаратный компонент сетевого адаптера, который поддерживает виртуализацию одно корневых операций ввода-вывода (SR-IOV).
Переключатель сетевого адаптера статически создается драйвером минипорта PF в контексте для вызова MiniportInitializeEx. Драйвер выделяет ресурсы и создает параметр на основе параметров, прочитанных из параметров реестра.
Динамическое создание коммутатора сетевого адаптера на сетевом адаптере.
Если драйвер минипорта PF не поддерживает создание статического коммутатора сетевого адаптера, драйвер минипорта выделяет ресурсы и создает переключатель на основе параметров, указанных в запросе OID.
Драйвер минипорта PF объявляет поддержку интерфейса SR-IOV, когда NDIS вызывает функцию MiniportInitializeEx драйвера. Если драйвер мини-порта PF поддерживает SR-IOV, NDIS считывает конфигурацию коммутатора сетевого адаптера из реестра. Прежде чем NDIS выдает запрос метода OID OID_NIC_SWITCH_CREATE_SWITCH в драйвер минипорта PF, NDIS форматирует структуру NDIS_NIC_SWITCH_PARAMETERS с информацией реестра следующим образом:
NDIS задает элемент SwitchType типу коммутатора сетевого адаптера.
Начиная с Windows Server 2012, Windows поддерживает только тип коммутатора NdisNicSwitchTypeExternal. Внешний коммутатор указывает, что виртуальные порты (VPorts), подключенные к этому типу коммутатора, могут получить доступ к внешней сети через физический порт сетевого адаптера.
Дополнительные сведения о коммутаторе сетевого адаптера см. в разделе "Архитектура SR-IOV".
NDIS задает член SwitchId значением идентификатора для коммутатора сетевого адаптера. Идентификатор коммутатора представляет собой целое число между нулем и числом коммутаторов, поддерживаемых сетевым адаптером. Значение NDIS_DEFAULT_SWITCH_ID указывает переключатель сетевого адаптера по умолчанию.
Примечание. Начиная с Windows Server 2012 интерфейс SR-IOV поддерживает только переключатель сетевого адаптера по умолчанию.
NDIS задает член NumVFs , указывающий количество виртуальных функций PCIe, которые можно выделить на коммутаторе сетевого адаптера.
Когда он получает запрос метода OID OID_NIC_SWITCH_CREATE_SWITCH, драйвер минипорта PF должен выполнить следующее:
Если драйвер мини-порта PF поддерживает создание и настройку статического коммутатора, он создает коммутатор сетевого адаптера при вызове MiniportInitializeEx. Когда драйвер обрабатывает этот запрос OID, он должен проверить параметры конфигурации в структуре NDIS_NIC_SWITCH_PARAMETERS. Параметры должны совпадать с параметрами, используемыми драйвером для создания коммутатора во время вызова MiniportInitializeEx. Если это не так, драйвер должен завершить запрос OID.
Дополнительные сведения см. в статье "Статическая создание коммутатора сетевого адаптера".
Если драйвер мини-порта PF поддерживает динамическое создание и настройку коммутатора, драйвер должен проверить значения конфигурации структуры NDIS_NIC_SWITCH_PARAMETERS и создать коммутатор сетевого адаптера на основе этих значений.
Дополнительные сведения см. в разделе Динамическое создание коммутатора сетевого адаптера.
Драйвер мини-порта PF должен выделить необходимые аппаратные и программные ресурсы для VPort по умолчанию на коммутаторе сетевого адаптера.
Обратите внимание, что VPort по умолчанию всегда создается с помощью запроса OID OID_NIC_SWITCH_CREATE_SWITCH и удаляется с помощью запроса OID OID_NIC_SWITCH_DELETE_SWITCH. Запросы OID OID_NIC_SWITCH_CREATE_VPORT и OID_NIC_SWITCH_DELETE_VPORT используются для создания и удаления неdefault VPorts на коммутаторе сетевого адаптера.
Драйвер мини-порта PF, поддерживающий динамическое создание и настройку коммутатора, должен включить виртуализацию SR-IOV на коммутаторе путем вызова NdisMEnableVirtualization. Этот вызов настраивает член NumVFs и VF Enable в структуре расширенных возможностей SR-IOV пространства конфигурации PCI Express (PCIe) адаптера.
Дополнительные сведения о пространстве конфигурации SR-IOV см. в спецификации виртуализации единого корневого ввода-вывода PCI-SIG и совместного использования 1.1 .
Обратите внимание , что если драйвер минипорта PF поддерживает создание статического коммутатора, он включает виртуализацию SR-IOV после создания коммутатора при вызове MiniportInitializeEx .
Если драйвер мини-порта PF успешно завершает запрос метода OID OID_NIC_SWITCH_CREATE_SWITCH, он позволяет выполнить следующее:
Виртуальные машины можно выделить на коммутаторе сетевого адаптера с помощью запросов метода OID OID_NIC_SWITCH_ALLOCATE_VF.
В коммутаторе сетевого адаптера можно создать недедефакционные виртуальные порты с помощью запросов метода OID OID_NIC_SWITCH_CREATE_VPORT.
Минипорт-драйвер отвечает за управление его пулом недефакултных VPorts. Драйвер указывает количество недефакултных VPorts в пуле через член NumVPorts структуры NDIS_NIC_SWITCH_INFO. Драйвер возвращает эту структуру с помощью запроса OID OID_NIC_SWITCH_ENUM_SWITCHES.
Обратите внимание , что сетевой адаптер должен всегда создавать VPort по умолчанию из пула для PF.