Partilhar via


Inicializar um driver de miniporta VF

Este tópico descreve as diretrizes para escrever uma função MiniportInitializeEx para o driver de miniport para uma função virtual (VF) PCI Express (PCIe). O VF é exposto por um adaptador de rede que suporta virtualização de E/S de raiz única (SR-IOV).

Observação

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

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

Além destas etapas, o driver de miniport VF deve seguir estas etapas adicionais quando o NDIS chamar a função MiniportInitializeEx do driver:

  • O driver de miniporta VF chama a função NdisGetHypervisorInfo para verificar se está a ser executado na partição secundária Hyper-V. Esta 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 miniporta está a ser executado numa partição secundária Hyper-V que está conectada ao PF no adaptador.

    Observação

    Se o tipo de partição for relatado como NdisHypervisorPartitionMsHvParent, o miniport driver é executado na partição-mãe Hyper-V que está ligada ao PF no adaptador. Nesse caso, o driver de miniporta não deve ser inicializado como um driver VF. Se possível, o driver deve ser inicializado como um driver PF, conforme descrito na seção Initialization Sequence for PF Miniport Drivers.

  • Ao contrário do driver de miniporta PF, o driver de miniporta 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 miniporta VF relata, através de uma estrutura NDIS_SRIOV_CAPABILITIES, os recursos de hardware SR-IOV do adaptador de rede virtual subjacente, que é inicializada da seguinte maneira:

    1. O driver de miniporta inicializa o membro Header . O driver define o membro Tipo do Cabeçalho para NDIS_OBJECT_TYPE_DEFAULT.

      A partir do NDIS 6.30, o driver de miniporta define o membro de Revisão do Cabeçalho para NDIS_SRIOV_CAPABILITIES_REVISION_1 e o membro Tamanho para NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.

    2. O driver de miniport define o sinalizador NDIS_SRIOV_CAPS_PF_MINIPORT no membro SriovCapabilities para relatar as capacidades de SR-IOV.

      Observação

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

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

    1. O miniport driver inicializa uma estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

      O driver de miniporta define os membros HardwareSriovCapabilities e CurrentSriovCapabilities para um ponteiro da estrutura já inicializada NDIS_SRIOV_CAPABILITIES.

    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 fila de máquina virtual (VMQ). No entanto, o driver pode anunciar suporte para outras tecnologias NDIS, como gestão de energia e RSS (escalonamento do lado de receção).

    Para obter mais informações sobre RSS, consulte Escalonamento Lateral de Recepção.