Удаление коммутатора сетевого адаптера

Сетевой адаптер, поддерживающий виртуализацию однокорневого ввода-вывода (SR-IOV), должен иметь возможность удаления коммутатора сетевого адаптера. Только драйвер мини-порта для физической функции PCI Express (PCIe) адаптера SR-IOV может удалить коммутатор сетевой карты на адаптере.

Примечание Начиная с NDIS 6.30 в Windows Server 2012 интерфейс SR-IOV поддерживает только один коммутатор сетевого адаптера. Этот параметр называется коммутатором сетевого адаптера по умолчанию, на который ссылается идентификатор NDIS_DEFAULT_SWITCH_ID.

Перед остановкой драйвера минипорта PF NDIS удаляет коммутатор сетевой карты, выдавая запрос на набор идентификатора объекта (OID) OID_NIC_SWITCH_DELETE_SWITCH. Элемент InformationBuffer структуры NDIS_OID_REQUEST содержит указатель на структуру NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS , указывающую идентификатор удаляемого коммутатора.

NDIS применяет следующие политики перед отправкой запроса набора OID OID_NIC_SWITCH_DELETE_SWITCH драйверу мини-порта PF:

  • NDIS гарантирует, что все фильтры получения были удалены из виртуальных портов по умолчанию и виртуальных портов (VPorts) по умолчанию в коммутаторе сетевого адаптера. Фильтры получения очищаются с помощью запроса на набор OID OID_RECEIVE_FILTER_CLEAR_FILTER.

  • NDIS гарантирует, что все виртуальные порты, не являющиеся стандартными, созданные на коммутаторе, были ранее удалены. Виртуальные порты удаляются с помощью запроса набора OID OID_NIC_SWITCH_DELETE_VPORT.

  • NDIS гарантирует, что все ресурсы для виртуальных функций PCIe ,подключенные к коммутатору сетевого адаптера, были ранее освобождены. Виртуальные функции освобождаются с помощью запроса набора OID OID_NIC_SWITCH_FREE_VF.

Когда он получает запрос метода OID OID_NIC_SWITCH_DELETE_SWITCH, драйвер мини-порта PF должен выполнить следующие действия:

  1. Если драйвер минипорта PF поддерживает статическое создание и настройку коммутаторов сетевого адаптера, он должен освободить программные ресурсы, связанные с указанным коммутатором сетевого адаптера. Однако драйвер может освободить аппаратные ресурсы для коммутатора сетевого адаптера только при вызове MiniportHaltEx .

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

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

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

  3. Если драйвер мини-порта PF поддерживает динамическое создание сетевых коммутаторов и все коммутаторы сетевого адаптера были удалены в сетевом адаптере, драйвер должен отключить виртуализацию адаптера, вызвав NdisMEnableVirtualization. Чтобы отключить виртуализацию, сетевой адаптер должен задать для параметра EnableVirtualization значение FALSE, а для параметра NumVFs — нулевое значение.

    NdisMEnableVirtualization очищает член NumVFs и бит VF Enable в структуре расширенных возможностей SR-IOV в пространстве конфигурации PCIe PF сетевого адаптера.

    Примечание Если драйвер минипорта PF поддерживает статическое создание и настройку коммутаторов сетевого адаптера, он должен вызывать NdisMEnableVirtualization только при вызове MiniportHaltEx .