Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma VF (função virtual) PCI Express (PCIe) é uma função PCIe leve em um adaptador de rede que dá suporte à virtualização de E/S raiz única (SR-IOV).
O VF está associado à função física PCIe (PF) no adaptador de rede e representa uma instância virtualizada do adaptador de rede. Cada VF tem seu próprio espaço de configuração PCI. Cada VF também compartilha um ou mais recursos físicos no adaptador de rede, como uma porta de rede externa, com o PF e outros VFs.
Uma VF não é um dispositivo PCIe completo. No entanto, ele fornece um mecanismo básico para transferir dados diretamente entre uma partição filha Hyper-V e o adaptador de rede SR-IOV subjacente. Os recursos de software associados à transferência de dados estão diretamente disponíveis para o VF e são isolados do uso pelos outros VFs ou pelo PF. No entanto, a configuração da maioria desses recursos é realizada pelo driver de miniporto PF que opera no sistema operacional de gerenciamento da partição pai Hyper-V.
Uma VF é exposta como um adaptador de rede virtual (adaptador de rede VF) no sistema operacional convidado que é executado em uma partição filha Hyper-V. Depois que o VF é associado a uma porta virtual (VPort) no comutador NIC do adaptador de rede SR-IOV, o driver VPCI (PCI virtual) executado na VM expõe o adaptador de rede VF. Uma vez exposto, o gerenciador PnP no sistema operacional hospedado carrega o driver de miniporto VF.
Observação
Uma partição filho Hyper-V também é conhecida como uma VM (máquina virtual).
O driver de miniporto VF é um driver de miniporto NDIS instalado na VM para gerenciar a VF. Qualquer operação executada pelo driver de miniporto VF não deve afetar nenhuma outra VF ou o PF no mesmo adaptador de rede.
O driver de miniporto VF pode funcionar como qualquer driver de dispositivo PCI. Este componente pode ler e gravar no espaço de configuração PCI do VF. No entanto, o acesso ao dispositivo PCI virtual é uma operação privilegiada e é gerenciado pelo driver de miniporto PF da seguinte maneira:
Ao chamar NdisMGetBusData para ler dados do espaço de configuração PCI do adaptador de rede VF, o driver de miniporto VF notifica a pilha de virtualização. Essa pilha é executada no sistema operacional de gerenciamento da partição pai Hyper-V. Quando a pilha é notificada da solicitação de leitura, ela emite uma solicitação de método OID (identificador de objeto) de OID_SRIOV_READ_VF_CONFIG_SPACE para o driver de miniporto PF. Os dados a serem lidos são especificados em uma estrutura de NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS contida na solicitação OID.
O driver lê os dados solicitados do espaço de configuração do VF PCI e retorna os dados concluindo a solicitação de OID. Esses dados são então retornados ao driver de miniporto VF quando a chamada para NdisMGetBusData é concluída.
Quando o driver de miniporto VF chama NdisMSetBusData para gravar dados no espaço de configuração PCI do adaptador de rede VF, a pilha de virtualização é notificada da solicitação de gravação. Ele emite uma solicitação de método OID de OID_SRIOV_WRITE_VF_CONFIG_SPACE para o driver de miniporta PF. Os dados a serem gravados são especificados em uma estrutura de NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS contida na solicitação OID.
O driver grava os dados no espaço de configuração do VF PCI e retorna o status da solicitação quando ela conclui a solicitação OID. Esse status é retornado ao driver de miniporta VF após a conclusão da chamada para NdisMSetBusData.
O driver miniport VF também pode se comunicar com o driver miniport PF. Esse caminho de comunicação é feito em uma interface de backchannel. Para obter mais informações, consulte SR-IOV PF/VF Backchannel Communication.
Nota O driver de miniport VF deve estar ciente de que está em execução em um ambiente virtualizado para poder se comunicar com o driver de miniport PF em certas operações. Para obter mais informações sobre como o driver faz isso, consulte Inicializando um Driver de Miniport VF.