Partilhar via


Tratamento do pedido de OID_NIC_SWITCH_CREATE_SWITCH

O NDIS emite uma solicitação de método de identificador de objeto (OID) de OID_NIC_SWITCH_CREATE_SWITCH para fazer o seguinte:

  • Ative um switch de NIC num adaptador de rede que foi criado estaticamente pelo miniport driver para a Função Física (PF) do PCI Express (PCIe). O PF é um componente de hardware do adaptador de rede que suporta virtualização de E/S de raiz única (SR-IOV).

    Um switch NIC é criado estaticamente pelo driver de miniporta PF no contexto da chamada para MiniportInitializeEx. O driver aloca os recursos e cria o switch com base nos parâmetros lidos das configurações do registro.

  • Crie dinamicamente um comutador NIC em um adaptador de rede.

    Se o driver de miniporta PF não suportar a criação de switch NIC estático, o driver de miniporta alocará os recursos e criará o switch com base nos parâmetros especificados na solicitação OID.

O driver de miniporta PF anuncia o suporte à interface SR-IOV quando o NDIS chama a função MiniportInitializeEx do driver. Se o driver de miniporta PF suportar SR-IOV, o NDIS lê a configuração do switch NIC do registo. Antes de o NDIS emitir uma solicitação de método OID de OID_NIC_SWITCH_CREATE_SWITCH para o driver de mini-porta PF, o NDIS formata uma estrutura de NDIS_NIC_SWITCH_PARAMETERS com as informações do registo da seguinte maneira:

  • O NDIS define o membro SwitchType como tipo de comutador NIC.

    A partir do Windows Server 2012, o Windows suporta apenas um tipo de comutador de NdisNicSwitchTypeExternal. Um comutador externo especifica que as portas virtuais (VPorts) que estão conectadas a esse tipo de switch podem acessar a rede externa através da porta física no adaptador de rede.

    Para obter mais informações sobre a opção NIC, consulte SR-IOV Architecture.

  • NDIS define o membro SwitchId como um valor identificador para o comutador NIC. O identificador do comutador é um número inteiro entre zero e o número de comutadores suportados pelo adaptador de rede. Um valor NDIS_DEFAULT_SWITCH_ID indica o switch NIC predefinido.

    Nota A partir do Windows Server 2012, a interface SR-IOV suporta apenas o comutador NIC predefinido na placa de rede.

  • O NDIS define o membro NumVFs que especifica o número de Funções Virtuais PCIe (VFs) que podem ser alocadas no switch NIC.

Quando recebe a solicitação do método OID de OID_NIC_SWITCH_CREATE_SWITCH, o driver de miniporta PF deve fazer o seguinte:

  1. Se o driver de miniporta PF oferecer suporte à criação e configuração de switch estático, ele criará o switch NIC quando o NDIS chamar MiniportInitializeEx. Quando o driver lida com essa solicitação OID, ele deve verificar os parâmetros de configuração na estrutura NDIS_NIC_SWITCH_PARAMETERS. Os parâmetros devem ser os mesmos usados pelo driver para criar a comutação durante a chamada para MiniportInitializeEx. Se isso não for verdade, o driver deve rejeitar o pedido OID.

    Para obter mais informações, consulte Criação Estática de um Switch NIC.

  2. Se o driver de miniporta PF suportar a criação e configuração de switch dinâmico, o driver deverá validar os valores de configuração da estrutura NDIS_NIC_SWITCH_PARAMETERS e criar o switch NIC com base nesses valores.

    Para obter mais informações, consulte criação dinâmica de um switch NIC.

  3. O driver de miniporta PF deve alocar os recursos de hardware e software necessários para o VPort padrão no switch NIC.

    Nota O VPort padrão é sempre criado através de uma solicitação OID de OID_NIC_SWITCH_CREATE_SWITCH e excluído por meio de uma solicitação OID de OID_NIC_SWITCH_DELETE_SWITCH. As solicitações OID de OID_NIC_SWITCH_CREATE_VPORT e OID_NIC_SWITCH_DELETE_VPORT são usadas para a criação e exclusão de VPorts não padrão no switch NIC.

  4. O driver miniport PF que suporta a criação e configuração dinâmicas de switch deve ativar a virtualização SR-IOV no switch chamando NdisMEnableVirtualization. Esta chamada configura o membro NumVFs e o bit VF Enable na estrutura Extended Capability SR-IOV do espaço de configuração PCI Express (PCIe) do adaptador.

    Para obter mais informações sobre o espaço de configuração SR-IOV, consulte a especificação PCI-SIG Single Root I/O Virtualization and Sharing 1.1.

    Observação Se o driver de miniporta PF oferecer suporte à criação de switch estático, ele habilitará a virtualização SR-IOV depois de criar o switch quando MiniportInitializeEx for chamado.

Se o driver de miniporta PF concluir com êxito a solicitação de método OID de OID_NIC_SWITCH_CREATE_SWITCH, ele permitirá que o seguinte ocorra:

  • Os VFs podem ser alocados no switch NIC por meio de solicitações de método OID de OID_NIC_SWITCH_ALLOCATE_VF.

  • VPorts que não são padrão podem ser criados no switch NIC através de solicitações de método OID de OID_NIC_SWITCH_CREATE_VPORT.

    O driver de miniporta é responsável por gerenciar seu pool de VPorts não padrão. O driver especifica o número de VPorts não padrão no seu pool através do membro NumVPorts da estrutura NDIS_NIC_SWITCH_INFO. O driver retorna essa estrutura por meio de uma solicitação de consulta OID de OID_NIC_SWITCH_ENUM_SWITCHES.

    Observação O adaptador de rede sempre deve criar um VPort padrão de seu pool para o PF.