Compartilhar via


Tratamento de solicitações de OID_NIC_SWITCH_ALLOCATE_VF

Quando o driver de miniporto da PF (Função Física) PCI Express (PCIe) no adaptador de rede manipula a solicitação de método OID (identificador de objeto) de OID_NIC_SWITCH_ALLOCATE_VF, ele faz o seguinte:

  • O driver de miniporto PF aloca os recursos de software para uma VF (função virtual) PCIe no adaptador de rede. Esses recursos são configurados com base nos parâmetros especificados na estrutura NDIS_NIC_SWITCH_VF_PARAMETERS .

  • O driver de miniporto PF atribui o VF a um comutador NIC no adaptador de rede. A opção NIC é identificada pelo membro SwitchId da estrutura NDIS_NIC_SWITCH_VF_PARAMETERS .

    Para obter mais informações sobre um comutador NIC, consulte Comutadores NIC.

  • O driver de miniporto PF atualiza o membro VFId com um identificador VF. Esse identificador é um índice baseado em zero e deve ser exclusivo em todas as VFs alocadas na opção NIC pelo driver de miniporto PF.

    O driver sobreposto usa o valor do membro VFId em solicitações OID sucessivas de OID_NIC_SWITCH_FREE_VF ou OID_NIC_SWITCH_VF_PARAMETERS.

  • O driver de miniporto PF atualiza o membro RequestorId com um RID (Identificador do Solicitante pcie) para o VF.

    O driver de miniporto chama NdisMGetVirtualFunctionLocation para obter as informações RID que correspondem ao VF. Em seguida, o driver cria o RID usando a macro NDIS_MAKE_RID com base nas informações retornadas pela chamada para NdisMGetVirtualFunctionLocation.

    O RID é usado pela pilha de virtualização para remapear o DMA e interromper entre o PF e o VF. O RID também permite que a IOMMU (unidade de gerenciamento de memória de entrada/saída) de hardware converta endereços físicos de convidado para hospedar endereços físicos.

  • O driver de miniporto PF inicializa e expõe o VF. Isso torna o VF pronto para uso pela pilha de virtualização.

Se o driver de miniporto PF puder alocar com êxito os recursos de software necessários e inicializar o VF, o driver concluirá a solicitação OID com NDIS_STATUS_SUCCESS. O driver de miniporto PF deve manter as IDs de VF para cada VF alocado. O NDIS e os drivers sobrepostos usam o identificador de VF em solicitações OID sucessivas para o driver de miniporto PF para várias ações, como redefinir ou liberar o VF.

Nota Quando os recursos para o VF são alocados, o VF está em um estado desanexado porque uma porta virtual (VPort) não está anexada ao VF. O driver sobreposto pode emitir uma solicitação OID de OID_NIC_SWITCH_CREATE_VPORT para criar e anexar um VPort ao VF. Para obter mais informações, consulte Criando uma porta virtual.