Emissione di richieste di OID_NIC_SWITCH_ALLOCATE_VF
Prima di eseguire la richiesta del metodo OID (Object Identifier) di OID_NIC_SWITCH_ALLOCATE_VF al driver miniport per la funzione fisica PCI Express (PCIe), il driver overlying formatta una struttura NDIS_NIC_SWITCH_VF_PARAMETERS . Questa struttura contiene i parametri di configurazione per le risorse da allocare per una funzione virtuale PCIe (VF) nella scheda di rete. Il driver overlying deve impostare i membri di questa struttura nel modo seguente:
Il membro SwitchId deve essere impostato sull'identificatore di un commutatore di interfaccia di rete creato in precedenza nella scheda di rete. Un'opzione della scheda di interfaccia di rete viene creata tramite una richiesta di metodo OID di OID_NIC_SWITCH_CREATE_SWITCH.
Quando gestisce la richiesta del metodo OID di OID_NIC_SWITCH_ALLOCATE_VF, il driver miniport per la funzione FISICA PCIe alloca le risorse per la funzione VF. Se le risorse vengono allocate correttamente, il driver miniport PF assegna la funzione VF all'opzione di interfaccia di rete specificata.
Nota A partire da NDIS 6.30 in Windows Server 2012, l'interfaccia SR-IOV supporta solo il commutatore di interfaccia di rete predefinito nella scheda di rete. Il valore del membro SwitchId deve essere impostato su NDIS_DEFAULT_SWITCH_ID.
Per altre informazioni su un commutatore della scheda di interfaccia di rete, vedere Commutatori di scheda di interfaccia di rete.
Il membro VFId deve essere impostato su NDIS_INVALID_VF_FUNCTION_ID.
Il membro RequestorId deve essere impostato su NDIS_INVALID_RID.
I membri VMFriendlyName e VMName devono essere impostati sui parametri di una partizione figlio Hyper-V. Il driver miniport PF usa questi membri solo a scopo informativo.
Nota La partizione figlio Hyper-V è nota anche come macchina virtuale.The Hyper-V child partition is also known as a virtual machine (VM).
La funzione VF è associata alla macchina virtuale specificata prima che il driver overlying eseva la richiesta di OID_NIC_SWITCH_CREATE_SWITCH .
Il membro NicName deve essere impostato sull'identificatore della scheda di rete della macchina virtuale.The NicName member must be set to the identifier of the virtual machine (VM) network adapter. Questa scheda virtuale viene esposta nel sistema operativo guest in esecuzione nella macchina virtuale. Il driver miniport PF utilizza questo membro solo a scopo informativo.
Quando le risorse vengono allocate per la VF e sono collegate alla partizione figlio, nel sistema operativo guest viene esposta una scheda di rete VF. La scheda di rete vm è in team con la scheda di rete VF per il trasferimento di pacchetti tramite il percorso dati VF basato su hardware.
Tuttavia, la funzione VF può essere scollegata dalla partizione figlio, ad esempio durante la migrazione in tempo reale. In questo caso, il trasferimento dei pacchetti avviene tramite il percorso dati sintetico basato su software. Per altre informazioni su questi percorsi dati, vedere Percorsi dati SR-IOV.
I membri PermanentMacAddress e CurrentMacAddress devono essere impostati su indirizzi MAC (Media Access Control) per la scheda di rete virtuale della VF. Questi indirizzi vengono esposti allo stack di rete eseguito nel sistema operativo guest della partizione figlio Hyper-V.
Il driver overlying rilascia la richiesta del metodo OID di OID_NIC_SWITCH_ALLOCATE_VF seguendo questa procedura:
Il driver eccessivamente inizializza una struttura NDIS_OID_REQUEST per la richiesta del metodo OID. Il driver imposta il membro InformationBuffer su un puntatore a una struttura di NDIS_NIC_SWITCH_VF_PARAMETERS inizializzata.
Il driver overlying chiama NdisOidRequest per emettere la richiesta OID al driver miniport PF sottostante.
Nota Quando il driver overlying chiama NdisOidRequest, NDIS intercetta la richiesta OID e verifica i parametri VF specificati nella struttura NDIS_NIC_SWITCH_VF_PARAMETERS . Se i parametri vengono verificati correttamente, NDIS inoltra l'OID al driver miniport PF. In caso contrario, NDIS non riesce la richiesta OID con NDIS_STATUS_INVALID_PARAMETER.
Dopo che un driver eccessivamente richiede l'allocazione delle risorse per un VF, tale driver è l'unico componente che può richiedere la liberazione delle risorse per la stessa VF. Il driver overlying deve emettere una richiesta OID set di OID_NIC_SWITCH_FREE_VF per liberare le risorse VF. Prima che il driver overlying possa essere arrestato, deve liberare le risorse per ogni VF allocato dalla richiesta di OID_NIC_SWITCH_ALLOCATE_VF del driver.