Excluindo um comutador NIC
Um adaptador de rede que dá suporte à virtualização de E/S de raiz única (SR-IOV) deve ser capaz de excluir um comutador NIC. Somente o driver de miniporto para a função física PCI Express (PCIe) do adaptador SR-IOV pode excluir um comutador NIC no adaptador.
Nota A partir do NDIS 6.30 em Windows Server 2012, a interface SR-IOV dá suporte a apenas uma opção NIC no adaptador de rede. Essa opção é conhecida como a opção NIC padrão e é referenciada pelo identificador NDIS_DEFAULT_SWITCH_ID.
Antes de interromper o driver de miniporto PF, o NDIS exclui a opção NIC emitindo uma solicitação de conjunto OID (identificador de objeto) de OID_NIC_SWITCH_DELETE_SWITCH. O membro InformationBuffer da estrutura NDIS_OID_REQUEST contém um ponteiro para uma estrutura NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS que especifica o identificador da opção que está sendo excluída.
O NDIS impõe as seguintes políticas antes de emitir a solicitação de conjunto de OID de OID_NIC_SWITCH_DELETE_SWITCH para o driver de miniporto PF:
O NDIS garante que todos os filtros de recebimento tenham sido limpos das VPorts (portas virtuais) padrão e não padrão na opção NIC. Os filtros de recebimento são limpos por meio de uma solicitação de conjunto de OID de OID_RECEIVE_FILTER_CLEAR_FILTER.
O NDIS garante que todas as VPorts (portas virtuais) não padrão criadas no comutador tenham sido excluídas anteriormente. Os VPorts são excluídos por meio de uma solicitação de conjunto de OID de OID_NIC_SWITCH_DELETE_VPORT.
O NDIS garante que todos os recursos para VFs (PcIe Virtual Functions) anexados ao comutador NIC tenham sido liberados anteriormente. Os VFs são liberados por meio de uma solicitação de conjunto de OID de OID_NIC_SWITCH_FREE_VF.
Quando ele recebe a solicitação de método OID de OID_NIC_SWITCH_DELETE_SWITCH, o driver de miniporto PF deve fazer o seguinte:
Se o driver de miniporto PF der suporte à criação estática e à configuração de comutadores NIC, ele deverá liberar os recursos de software associados à opção NIC especificada. No entanto, o driver só pode liberar os recursos de hardware para a opção NIC quando MiniportHaltEx é chamado.
Para obter mais informações sobre a criação de comutador NIC estático, consulte Criação estática de um comutador NIC.
Se o driver de miniporto PF der suporte à criação dinâmica e à configuração de comutadores NIC, ele deverá liberar os recursos de hardware e software associados à opção NIC especificada.
Para obter mais informações sobre a criação dinâmica do comutador NIC, consulte Criação dinâmica de um comutador NIC.
Se o driver de miniporto PF der suporte à criação dinâmica de comutadores NIC e todos os comutadores NIC tiverem sido excluídos no adaptador de rede, o driver deverá desabilitar a virtualização no adaptador chamando NdisMEnableVirtualization. Para desabilitar a virtualização, o adaptador de rede deve definir o parâmetro EnableVirtualization como FALSE e o parâmetro NumVFs como zero.
NdisMEnableVirtualization limpa o membro NumVFs e o bit Habilitar VF na estrutura capacidade estendida SR-IOV no espaço de configuração PCIe do PF do adaptador de rede.
Nota Se o driver de miniporto PF der suporte à criação estática e à configuração de comutadores NIC, ele só deverá chamar NdisMEnableVirtualization quando MiniportHaltEx for chamado.