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


Обработка запроса 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 должен выполнить следующее:

  1. Если драйвер мини-порта PF поддерживает создание и настройку статического коммутатора, он создает коммутатор сетевого адаптера при вызове MiniportInitializeEx. Когда драйвер обрабатывает этот запрос OID, он должен проверить параметры конфигурации в структуре NDIS_NIC_SWITCH_PARAMETERS. Параметры должны совпадать с параметрами, используемыми драйвером для создания коммутатора во время вызова MiniportInitializeEx. Если это не так, драйвер должен завершить запрос OID.

    Дополнительные сведения см. в статье "Статическая создание коммутатора сетевого адаптера".

  2. Если драйвер мини-порта PF поддерживает динамическое создание и настройку коммутатора, драйвер должен проверить значения конфигурации структуры NDIS_NIC_SWITCH_PARAMETERS и создать коммутатор сетевого адаптера на основе этих значений.

    Дополнительные сведения см. в разделе Динамическое создание коммутатора сетевого адаптера.

  3. Драйвер мини-порта 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 на коммутаторе сетевого адаптера.

  4. Драйвер мини-порта 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, он позволяет выполнить следующее: