Enumerazione di funzioni virtuali in una scheda di rete
Un driver sovrastante o un'applicazione utente può ottenere un elenco di tutte le Funzioni Virtuali PCI Express (PCIe) su una scheda di rete che supporta la virtualizzazione di I/O a radice singola (SR-IOV). Il driver o l'applicazione rilascia una richiesta di metodo OID (Object Identifier) di OID_NIC_SWITCH_ENUM_VFS per ottenere questo elenco.
Prima che il driver o l'applicazione emetta la richiesta OID, deve inizializzare una struttura NDIS_NIC_SWITCH_VF_INFO_ARRAY, che viene passata insieme alla richiesta. Il driver o l'applicazione devono seguire queste linee guida durante l'inizializzazione della struttura NDIS_NIC_SWITCH_VF_INFO_ARRAY:
Se il flag NDIS_NIC_SWITCH_VF_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH è impostato nel membro Flags, il driver o l'applicazione di livello superiore deve impostare il membro SwitchId sull'identificatore di un switch NIC sulla scheda di rete SR-IOV. Impostando questi membri in questo modo, le informazioni VF vengono restituite solo per il commutatore NIC specificato nella scheda di rete SR-IOV.
Nota Il driver sovrastante e l'applicazione in modalità utente possono ottenere gli identificatori dell'interruttore NIC inviando una richiesta di query OID di OID_NIC_SWITCH_ENUM_SWITCHES.
Se il membro Flags è impostato su zero, il driver o l'applicazione deve impostare il membro SwitchId su zero. Impostando questi membri in questo modo, vengono restituite informazioni VF per tutti gli switch NIC sulla scheda di rete SR-IOV.
Nota A partire da Windows Server 2012, Windows supporta solo il commutatore predefinito della scheda di rete. Indipendentemente dai flag impostati nel membro Flags, il membro SwitchId deve essere impostato su NDIS_DEFAULT_SWITCH_ID.
Una volta restituita con successo da questa richiesta di query OID, il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a un buffer che contiene quanto segue:
Struttura NDIS_NIC_SWITCH_VF_INFO_ARRAY che definisce il numero di elementi all'interno della matrice.
Matrice di strutture NDIS_NIC_SWITCH_VF_INFO. Ognuna di queste strutture contiene informazioni su un singolo VF su un commutatore NIC della scheda di rete. Un VF viene collegato a un commutatore NIC tramite richieste di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF.
Nota Se nessun VF è collegato a un commutatore di scheda di rete nell'adattatore di rete, il membro NumElements della struttura NDIS_NIC_SWITCH_VF_INFO_ARRAY è impostato su zero e non vengono restituite strutture NDIS_NIC_SWITCH_VF_INFO.
Per ulteriori informazioni sui commutatori NIC, vedere Commutatori NIC.
NDIS gestisce la richiesta OID_NIC_SWITCH_ENUM_VFS per i driver di miniport. NDIS restituisce le informazioni da una cache interna dei dati che mantiene dall'ispezione delle origini seguenti:
Richieste di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF.
Richieste di impostazioni OID di OID_NIC_SWITCH_VF_PARAMETERS.