Compartilhar via


Redefinindo uma função virtual

Um driver sobreposto emite uma solicitação de conjunto de OID (identificador de objeto) de OID_SRIOV_RESET_VF para redefinir uma VF (Função Virtual) PCI Express (PCIe) especificada. O VF é um componente de hardware de um adaptador de rede que dá suporte à virtualização de E/S raiz única. Drivers sobrepostos emitem essa solicitação de conjunto de OID para o driver de miniporto do PF (Função Física) PCI Express (PCIe).

Por exemplo, a pilha de virtualização é executada no sistema operacional de gerenciamento da partição pai do Hyper-V. Antes que a pilha desanexe um VF de uma partição filho do Hyper-V, ela solicita uma FLR (Redefinição de Nível de Função) no VF. Como o FLR é uma operação privilegiada, ele só pode ser executado pelo driver de miniporto PF que também é executado no sistema operacional de gerenciamento. Para solicitar um FLR de um VF especificado, a pilha de virtualização emite a solicitação OID_SRIOV_RESET_VFpara o driver de miniporto PF.

Antes de emitir essa solicitação de conjunto de OID, o driver sobreposto deve inicializar uma estrutura de NDIS_SRIOV_RESET_VF_PARAMETERS . O driver deve definir o membro VFId como o identificador do VF a ser redefinido.

Ao lidar com essa solicitação OID, o driver de miniporto PF deve seguir estas diretrizes:

  • O driver de miniporto PF deve verificar se o VF, especificado pelo membro VFId da estrutura NDIS_SRIOV_RESET_VF_PARAMETERS , tem recursos que foram alocados anteriormente. O driver de miniporto PF aloca recursos para um VF durante uma solicitação de método OID de OID_NIC_SWITCH_ALLOCATE_VF. Se os recursos do VF especificado não tiverem sido alocados, o driver deverá falhar na solicitação OID.

  • A operação de redefinição só deve afetar o VF especificado. A operação não deve afetar outras VFs ou o PF no mesmo adaptador de rede.