OID_SRIOV_WRITE_VF_CONFIG_SPACE
Un driver overlying genera una richiesta di set di identificatori di oggetto (OID) di OID_SRIOV_WRITE_VF_CONFIG_SPACE per scrivere dati nello spazio di configurazione DI PCI Express (PCIe) per una funzione virtuale PCIe specificata nella scheda di rete.
I driver overlying emettono questa richiesta impostata su OID sul driver miniport per la funzione fisica PCIe della scheda di rete(PF). Questa richiesta di metodo OID è necessaria per i driver miniport PF che supportano l'interfaccia di virtualizzazione I/O (SR-IOV) singola.
Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a un buffer allocato dal chiamante. Questo buffer è formattato per contenere quanto segue:
Struttura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS che contiene i parametri per un'operazione di scrittura dello spazio di configurazione PCI di un VF.
Spazio buffer aggiuntivo che contiene i dati da scrivere nello spazio di configurazione PCI.
Commenti
Il driver miniport VF viene eseguito nel sistema operativo guest di una partizione figlio Hyper-V. A causa di questo, il driver miniport VF non può accedere direttamente alle risorse hardware, ad esempio lo spazio di configurazione PCI di VF. Solo il driver miniport PF, che viene eseguito nel sistema operativo di gestione di una partizione padre Hyper-V, può accedere allo spazio di configurazione PCI per un VF.
Il driver overlying, ad esempio lo stack di virtualizzazione, genera la richiesta del set OID di OID_SRIOV_WRITE_VF_CONFIG_SPACE quando il driver miniport VF chiama NdisMSetBusData per scrivere nello spazio di configurazione PCI.
Quando gestisce la richiesta del metodo OID di OID_SRIOV_WRITE_VF_CONFIG_SPACE, il driver miniport PF deve seguire queste linee guida:
Il driver miniport PF deve verificare che il VF, specificato dal membro VFId della struttura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS , disponga di risorse che sono state assegnate in precedenza. Il driver miniport PF alloca le risorse per un VF tramite una richiesta di metodo OID di OID_NIC_SWITCH_ALLOCATE_VF.
Se le risorse per il VF specificato non sono state allocate, il driver deve non riuscire la richiesta OID.
Il driver MINIport PF chiama NdisMSetVirtualFunctionBusData per scrivere nello spazio di configurazione PCI richiesto. Tuttavia, il driver miniport PF può anche restituire i dati dello spazio di configurazione PCI per il VF che il driver ha memorizzato nella cache dalle operazioni di lettura o scrittura precedenti dello spazio di configurazione PCI.
Nota Se un fornitore di hardware indipendente (IHV) fornisce un driver del bus virtuale (VBD) come parte del pacchetto driver SR-IOV, il driver miniport PF non deve chiamare NdisMSetVirtualFunctionBusData. Il driver deve invece interfacciarsi con VBD tramite un canale di comunicazione privato e richiedere che la chiamata VBD SetVirtualFunctionData. Questa funzione viene esposta dall'interfaccia GUID_VPCI_INTERFACE_STANDARD supportata dal driver del bus PCI (VPCI) sottostante.
Se il driver miniport PF può completare correttamente la richiesta OID, il driver deve copiare i dati dello spazio di configurazione PCI richiesti nel buffer a cui fa riferimento il membro InformationBufferdella struttura NDIS_OID_REQUEST. Il driver copia i dati nel buffer in corrispondenza dell'offset specificato dal membro BufferOffset della struttura NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS .
Per altre informazioni, vedere Impostazione dei dati di configurazione PCI di una funzione virtuale.
Codici di stato restituiti
Il driver miniport PF restituisce uno dei codici di stato seguenti per la richiesta del set OID di OID_SRIOV_WRITE_VF_CONFIG_SPACE.
Codice di stato | Descrizione |
---|---|
NDIS_STATUS_SUCCESS |
La richiesta OID è stata completata correttamente. |
NDIS_STATUS_NOT_SUPPORTED |
Il driver miniport PF non supporta l'interfaccia I/O (SR-IOV) radice singola o non è abilitata per l'uso dell'interfaccia. |
NDIS_STATUS_INVALID_PARAMETER |
Uno o più membri della struttura NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS hanno valori non validi. |
NDIS_STATUS_INVALID_LENGTH |
Il buffer delle informazioni era troppo breve. NDIS imposta i DATI. SET_INFORMATION. Membro ByteNeeded nella struttura NDIS_OID_REQUEST alla dimensione minima del buffer necessaria. |
NDIS_STATUS_FAILURE |
La richiesta non è riuscita per altri motivi. |
Requisiti
Versione |
Supportato in NDIS 6.30 e versioni successive. |
Intestazione |
Ntddndis.h (include Ndis.h) |
Vedi anche
NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS
NdisMSetVirtualFunctionBusData