Partilhar via


Enumerando portas virtuais em um adaptador de rede

Um driver superior ou aplicação de utilizador pode obter uma lista de todas as portas virtuais (VPorts) num comutador NIC de um adaptador de rede que suporta virtualização de E/S de raiz única (SR-IOV). O driver ou aplicativo emite uma solicitação de método de identificador de objeto (OID) de OID_NIC_SWITCH_ENUM_VPORTS para obter essa lista.

Após um retorno bem-sucedido desta solicitação de consulta de OID, o InformationBuffer membro da estrutura NDIS_OID_REQUEST contém um ponteiro para um buffer que contém o seguinte:

Antes que o driver sobrejacente ou o aplicativo de usuário emita a solicitação de OID_NIC_SWITCH_ENUM_VPORTS, ele deve inicializar uma estrutura de NDIS_NIC_SWITCH_VPORT_INFO_ARRAY que é passada junto com a solicitação. O driver ou aplicativo deve seguir estas diretrizes ao inicializar a estrutura NDIS_NIC_SWITCH_VPORT_INFO_ARRAY:

  • Se o sinalizador de NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH estiver definido no membro Flags, as informações serão retornadas para todos os VPorts criados em um switch NIC especificado. O comutador NIC é especificado pelo membro SwitchId dessa estrutura.

    Observação A partir do Windows Server 2012, a interface SR-IOV suporta apenas um comutador NIC no adaptador de rede. Essa opção é conhecida como a opção NIC padrão e é referenciada pelo identificador NDIS_DEFAULT_SWITCH_ID. Independentemente dos sinalizadores definidos no membro Flags, o membro SwitchId deve ser definido como NDIS_DEFAULT_SWITCH_ID.

  • Se o sinalizador NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION estiver definido no membro Flags, as informações serão retornadas para todos os VPorts ligados a uma Função Física (PF) ou Função Virtual (VF) especificada do PCI Express (PCIe) no adaptador de rede. O PF ou VF é especificado pelo membro AttachedFunctionId dessa estrutura.

    Se o AttachedFunctionId membro estiver definido como NDIS_PF_FUNCTION_ID, as informações serão retornadas para todos os VPorts. Isso inclui o VPort padrão que está anexado ao PF. Se o membro AttachedFunctionId estiver definido para um identificador VF válido, as informações serão retornadas para todos os VPorts associados ao VF especificado.

    Observação A partir do Windows Server 2012, apenas um VPort não padrão pode ser anexado a um VF. No entanto, vários VPorts (incluindo o VPort padrão) podem ser anexados ao PF.

  • Se o membro Flags estiver definido como zero, as informações serão retornadas para todos os VPorts conectados ao PF ou VF no adaptador de rede. Nesse caso, os valores do SwitchId e AttachedFunctionId são ignorados.

O NDIS lida com a solicitação de OID_NIC_SWITCH_ENUM_VPORTS para drivers de miniporta. O NDIS retorna as informações de um cache interno dos dados que ele mantém da inspeção das seguintes fontes: