Удаление коммутатора сетевого адаптера
Сетевой адаптер, поддерживающий виртуализацию однокорневого ввода-вывода (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 должен выполнить следующие действия:
Если драйвер минипорта PF поддерживает статическое создание и настройку коммутаторов сетевого адаптера, он должен освободить программные ресурсы, связанные с указанным коммутатором сетевого адаптера. Однако драйвер может освободить аппаратные ресурсы для коммутатора сетевого адаптера только при вызове MiniportHaltEx .
Дополнительные сведения о создании статического коммутатора сетевого адаптера см. в разделе Статичное создание коммутатора сетевого адаптера.
Если драйвер мини-порта PF поддерживает динамическое создание и настройку коммутаторов сетевого адаптера, он должен освободить аппаратные и программные ресурсы, связанные с указанным коммутатором сетевого адаптера.
Дополнительные сведения о создании динамического коммутатора сетевой карты см. в разделе Динамическое создание коммутатора сетевого адаптера.
Если драйвер мини-порта PF поддерживает динамическое создание сетевых коммутаторов и все коммутаторы сетевого адаптера были удалены в сетевом адаптере, драйвер должен отключить виртуализацию адаптера, вызвав NdisMEnableVirtualization. Чтобы отключить виртуализацию, сетевой адаптер должен задать для параметра EnableVirtualization значение FALSE, а для параметра NumVFs — нулевое значение.
NdisMEnableVirtualization очищает член NumVFs и бит VF Enable в структуре расширенных возможностей SR-IOV в пространстве конфигурации PCIe PF сетевого адаптера.
Примечание Если драйвер минипорта PF поддерживает статическое создание и настройку коммутаторов сетевого адаптера, он должен вызывать NdisMEnableVirtualization только при вызове MiniportHaltEx .