Condividi tramite


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


GUID_VPCI_INTERFACE_STANDARD

NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS

NdisMSetBusData

NdisMSetVirtualFunctionBusData

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE

SetVirtualFunctionData