Compartilhar via


Lidar com a solicitação 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:

  • Habilite um switch NIC em um adaptador de rede criado estaticamente pelo driver de miniporta para a função física (PF) PCI Express (PCIe). A PF é um componente de hardware do adaptador de rede que oferece suporte à virtualização de E/S de raiz única (SR-IOV).

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

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

    Se o driver de miniporta PF não oferecer suporte à 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 seu suporte à interface SR-IOV quando o NDIS chama a função MiniportInitializeEx do driver. Se o driver de miniporta PF oferecer suporte a SR-IOV, o NDIS lerá a configuração do switch NIC do registro. Antes de o NDIS emitir uma solicitação de método OID de OID_NIC_SWITCH_CREATE_SWITCH para o driver de miniporta PF, o NDIS formata uma estrutura NDIS_NIC_SWITCH_PARAMETERS com as informações do registro da seguinte maneira:

  • O NDIS define o membro SwitchType como o tipo do switch NIC.

    A partir do Windows Server 2012, o Windows oferece suporte apenas a um tipo de switch NdisNicSwitchTypeExternal. Um switch externo especifica que as portas virtuais (VPorts) conectadas a esse tipo de switch podem acessar a rede externa por meio da porta física no adaptador de rede.

    Para obter mais informações sobre o switch NIC, consulte a Arquitetura SR-IOV.

  • O NDIS define o membro SwitchId como um valor de identificador para o switch NIC. O identificador de switch é um inteiro entre zero e o número de switches compatíveis com o adaptador de rede. Um valor NDIS_DEFAULT_SWITCH_ID indica a opção NIC padrão.

    Observação A partir do Windows Server 2012, a interface SR-IOV oferece suporte apenas à opção NIC padrão no adaptador de rede.

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

Quando ele 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 manipula essa solicitação OID, ele deve verificar os parâmetros de configuração na estrutura NDIS_NIC_SWITCH_PARAMETERS structure. Os parâmetros devem ser os mesmos usados pelo driver para criar o switch durante a chamada para MiniportInitializeEx. Se isso não for verdade, o driver deverá falhar na solicitação OID.

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

  2. Se o driver de miniporta PF oferecer suporte à 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 a VPort padrão no switch NIC.

    Observação O VPort padrão é sempre criado por meio 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 a exclusão de VPorts não padrão no switch NIC.

  4. O driver de miniporta PF que oferece suporte à criação e configuração de switch dinâmico deve habilitar a virtualização SR-IOV no switch chamando NdisMEnableVirtualization. Essa chamada configura o membro NumVFs e o bit VF Enable na estrutura de recurso estendido 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 Virtualização de E/S de raiz única e compartilhamento 1.1 da PCI-SIG.

    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 a função MiniportInitializeEx for chamada.

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

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

  • VPorts não padrão podem ser criados no switch NIC por meio 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 em seu pool por meio 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 PF.