Enumerazione delle porte virtuali in una scheda di rete

Un driver o un'applicazione utente overlying può ottenere un elenco di tutte le porte virtuali (VPorts) in un commutatore di scheda di rete di una scheda di rete che supporta la virtualizzazione I/O radice singola (SR-IOV). Il driver o l'applicazione genera una richiesta di metodo OID (Object Identifier) di OID_NIC_SWITCH_ENUM_VPORTS per ottenere questo elenco.

Dopo aver restituito correttamente la richiesta di query OID, il membro InformationBuffer della struttura di NDIS_OID_REQUEST contiene un puntatore a un buffer contenente quanto segue:

Prima che il driver o l'applicazione utente superi la richiesta di OID_NIC_SWITCH_ENUM_VPORTS , è necessario inizializzare una struttura NDIS_NIC_SWITCH_VPORT_INFO_ARRAY passata insieme alla richiesta. Il driver o l'applicazione devono seguire queste linee guida durante l'inizializzazione della struttura NDIS_NIC_SWITCH_VPORT_INFO_ARRAY :

  • Se il flag NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH è impostato nel membro Flags , le informazioni vengono restituite per tutte le VPort create in un commutatore di interfaccia di interfaccia di rete specificato. L'opzione della scheda di interfaccia di rete viene specificata dal membro SwitchId di tale struttura.

    Nota A partire da Windows Server 2012, l'interfaccia SR-IOV supporta un solo commutatore della scheda di rete nella scheda di rete. Questo commutatore è noto come commutatore di interfaccia di interfaccia di rete predefinito e viene fatto riferimento all'identificatore NDIS_DEFAULT_SWITCH_ID. Indipendentemente dai flag impostati nel membro Flags , il membro SwitchId deve essere impostato su NDIS_DEFAULT_SWITCH_ID.

  • Se il flag NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION è impostato nel membro Flags , le informazioni vengono restituite per tutte le VPort collegate a una funzione fisica PCI Express (PCIe) specificata o funzione virtuale (VF) nella scheda di rete. Pf o VF viene specificato dal membro AttachedFunctionId di tale struttura.

    Se il membro AttachedFunctionId è impostato su NDIS_PF_FUNCTION_ID, le informazioni vengono restituite per tutte le VPort. Include il VPort predefinito collegato al pf. Se il membro AttachedFunctionId è impostato su un identificatore VF valido, le informazioni vengono restituite per tutte le VPort associate al VF specificato.

    Nota A partire da Windows Server 2012, è possibile collegare un solo VPort non definito a un VF. Tuttavia, è possibile collegare più VPort (incluso il VPort predefinito) al pf.

  • Se il membro Flags è impostato su zero, le informazioni vengono restituite per tutte le VPort collegate alla scheda di rete PF o VF. In questo caso, i valori di SwitchId e AttachedFunctionId vengono ignorati.

NDIS gestisce la richiesta di OID_NIC_SWITCH_ENUM_VPORTS per i driver miniport. NDIS restituisce le informazioni da una cache interna dei dati che gestisce dall'ispezione delle origini seguenti: