Share via


Inicializando um driver de miniporto VF

Este tópico descreve as diretrizes para escrever uma função MiniportInitializeEx para o driver de miniporto para uma VF (função virtual) PCI Express (PCIe). A VF é exposta por um adaptador de rede que dá suporte à SR-IOV (virtualização de E/S de raiz única).

Observação

 Essas diretrizes se aplicam somente aos drivers de miniporta VF do adaptador de rede SR-IOV. Para obter diretrizes de inicialização para o driver de miniporto de uma função física PCIe (PF) do adaptador, consulte Inicializando um driver de miniporto PF

O driver de miniporto VF segue as mesmas etapas que qualquer driver de miniporto NDIS quando sua função MiniportInitializeEx é chamada. Para obter mais informações sobre essas etapas, consulte Inicializando um Driver de Miniport.

Além dessas etapas, o driver de miniporto VF deve seguir estas etapas adicionais quando o NDIS chama a função MiniportInitializeEx do driver:

  • O driver de miniporto VF chama a função NdisGetHypervisorInfo para verificar se ela está em execução na partição filho do Hyper-V. Essa função retorna uma estrutura NDIS_HYPERVISOR_INFO que define o tipo de partição. Se o tipo de partição for relatado como NdisHypervisorPartitionMsHvChild, o driver de miniporto será executado em uma partição filho do Hyper-V anexada ao PF no adaptador.

    Observação

    Se o tipo de partição for relatado como NdisHypervisorPartitionMsHvParent, o driver de miniporto estará em execução na partição pai do Hyper-V anexada ao PF no adaptador. Nesse caso, o driver de miniporto não deve ser inicializado como um driver VF. Se possível, o driver deve inicializar como um driver PF, conforme descrito em Sequência de Inicialização para Drivers de Miniporto PF.

  • Ao contrário do driver de miniporto PF, o driver de miniporto VF não deve ser instalado com as palavras-chave padronizadas SR-IOV e não deve tentar ler essas palavras-chave. Para obter mais informações sobre essas palavras-chave, consulte Palavras-chave INF padronizadas para SR-IOV.

  • O driver de miniporto VF relata as funcionalidades de hardware SR-IOV do adaptador de rede virtual subjacente por meio de uma estrutura de NDIS_SRIOV_CAPABILITIES inicializada da seguinte maneira:

    1. O driver de miniporta inicializa o membro Header . O driver define o membro Type de Header como NDIS_OBJECT_TYPE_DEFAULT.

      A partir do NDIS 6.30, o driver de miniporto define o membro Revision de Header como NDIS_SRIOV_CAPABILITIES _REVISION_1 e o membro Size como NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.

    2. O driver de miniporta define o sinalizador NDIS_SRIOV_CAPS_PF_MINIPORT no membro SriovCapabilities para relatar funcionalidades SR-IOV.

      Observação

      O driver de miniporta VF deve definir o sinalizador NDIS_SRIOV_CAPS_VF_MINIPORT e o sinalizador de NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.

    O driver de miniporto VF registra os recursos SR-IOV do adaptador de rede seguindo estas etapas:

    1. O driver de miniporta inicializa uma estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

      O driver de miniporto define os membros HardwareSriovCapabilities e CurrentSriovCapabilities como um ponteiro para a estrutura de NDIS_SRIOV_CAPABILITIES anteriormente inicializada.

    2. O driver chama NdisMSetMiniportAttributes e define o parâmetro MiniportAttributes como um ponteiro para a estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

  • O driver de miniporta VF não deve anunciar recursos de VMQ (fila de máquina virtual). No entanto, o driver pode anunciar suporte para outras tecnologias de NDIS, como gerenciamento de energia e RSS (dimensionamento lateral de recebimento).

    Para obter mais informações sobre o RSS, consulte Receive Side Scaling.