Diretrizes miniportInitializeEx para drivers de miniporto PF
Este tópico descreve as diretrizes para escrever uma função MiniportInitializeEx para o driver de miniporto da função física PCI Express (PCIe) (PF). O PF é um componente de um adaptador de rede que dá suporte à virtualização de E/S de raiz única (SR-IOV).
Nota Essas diretrizes se aplicam apenas a drivers de miniporte PF. Para obter diretrizes de inicialização para o driver de miniporto de uma VF (função virtual) PCIe do adaptador, consulte Inicializando um driver de miniporto VF.
O driver de miniporto PF segue as mesmas etapas que qualquer driver de miniporto NDIS quando sua função MiniportInitializeEx . Para obter mais informações sobre essas etapas, consulte Inicializando um driver de miniporto.
Além dessas etapas, o driver de miniporto PF deve seguir estas etapas adicionais quando o NDIS chama a função MiniportInitializeEx do driver:
O driver de miniporto PF chama a função NdisGetHypervisorInfo para verificar se ela está em execução na partição pai 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 NdisHypervisorPartitionMsHvParent, o driver de miniporto estará em execução na partição pai do Hyper-V anexada ao PF no adaptador.
Nota Se o tipo de partição for relatado como NdisHypervisorPartitionMsHvChild, o driver de miniporto estará em execução na partição filho do Hyper-V anexada a uma VF no adaptador. Nesse caso, o driver de miniporte não deve ser inicializado como um driver PF. Se possível, o driver deve inicializar como um driver VF, conforme descrito em Inicializando um driver de miniporto VF.
O driver de miniporto PF deve ler as palavras-chave padronizadas SR-IOV para determinar se o SR-IOV está habilitado e obter as configurações de comutador NIC. Para obter mais informações sobre essas palavras-chave, consulte Palavras-chave INF padronizadas para SR-IOV.
Nota Se o driver de miniporto PF registrou um ponto de entrada para uma função MiniportSetOptions , o driver pode ter obtido essas configurações anteriormente do registro quando o NDIS chamou MiniportSetOptions.
Se o adaptador de rede der suporte a SR-IOV, VMQ (fila de máquina virtual) ou RSS, o driver de miniporte deverá determinar qual recurso habilitar no adaptador de rede. Para obter mais informações sobre como determinar isso, consulte Manipulando palavras-chave SR-IOV, VMQ e RSS Standardized INF.
Juntamente com as funcionalidades de hardware RSS e VMQ (se houver suporte), o driver de miniporto deve relatar seu conjunto completo de recursos SR-IOV de hardware. Esses recursos devem ser anunciados independentemente das configurações de palavra-chave padronizadas do SR-IOV no registro.
Se SR-IOV estiver habilitado no adaptador de rede, o driver de miniporto também deverá relatar as configurações sr-IOV atualmente habilitadas no adaptador.
Para obter mais informações sobre como relatar os recursos sr-IOV, consulte Determinando recursos SR-IOV.
O driver de miniporte deve relatar seu conjunto completo de recursos de comutador nic de hardware. Esses recursos devem ser anunciados independentemente das configurações de palavra-chave padronizadas do SR-IOV no registro.
Se SR-IOV estiver habilitado no adaptador de rede, o driver de miniporte também deverá relatar as configurações de comutador NIC atualmente habilitadas no adaptador.
Para obter mais informações sobre como relatar os recursos de comutador nic, consulte Determinando os recursos de comutador nic.
O driver de miniporte deve relatar seu conjunto completo de recursos de filtragem de recebimento de hardware. Esses recursos devem ser anunciados independentemente das configurações de palavra-chave padronizadas do SR-IOV no registro.
Se SR-IOV estiver habilitado no adaptador de rede, o driver de miniporte também deverá relatar as configurações de filtragem de recebimento atualmente habilitadas no adaptador.
Para obter mais informações sobre como relatar os recursos de filtragem de recebimento, consulte Determinando recursos de filtragem de recebimento.
Se o driver de miniporto der suporte à criação de comutador NIC estático, ele deverá fazer o seguinte no contexto da chamada para MiniportInitializeEx.
O driver configura o hardware do adaptador com base na opção NIC padronizada palavra-chave configurações. Com base nessas configurações, o driver aloca os recursos de hardware e software necessários para a opção NIC.
O driver de miniporto chama NdisMEnableVirtualization para habilitar SR-IOV e definir o número de VFs no adaptador de rede. Essa função configura a Funcionalidade Estendida SR-IOV no espaço de configuração PCI do adaptador. Se essa função retornar NDIS_STATUS_SUCCESS, SR-IOV será habilitado e os VFs serão expostos pela interface PCIe.
Para obter mais informações, consulte Criação estática de um comutador NIC.
Nota Se o driver de miniporto der suporte à criação de comutador NIC dinâmico, ele criará o comutador e habilitará a virtualização quando manipular uma solicitação de método OID (identificador de objeto) de OID_NIC_SWITCH_CREATE_SWITCH. Para obter mais informações, consulte Criação dinâmica de um comutador NIC.