OID_SRIOV_WRITE_VF_CONFIG_BLOCK
Un driver overlying genera una richiesta di set OID (Object Identifier) di OID_SRIOV_WRITE_VF_CONFIG_BLOCK per scrivere dati in un blocco di configurazione VF (PCI Express) Virtual Function (PCIe).
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_BLOCK_PARAMETERS che contiene l'offset, in unità di byte, dall'inizio di questa struttura a una posizione all'interno del buffer che contiene i dati scritti nel blocco di configurazione VF.
Spazio di buffer aggiuntivo per la scrittura dei dati nel blocco di configurazione VF specificato.
Un blocco di configurazione VF viene usato per la comunicazione backchannel tra i driver PF e miniport VF. L'IHV può definire uno o più blocchi di configurazione VF per i driver miniport. Ogni blocco di configurazione VF ha un formato, una lunghezza e un ID blocco definiti dall'IHV.
Nota I dati di ogni blocco di configurazione VF vengono usati solo dai driver PF e miniport VF.
Prima di eseguire la richiesta del set OID di OID_SRIOV_WRITE_VF_CONFIG_BLOCK, il driver overlying deve impostare i membri della struttura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS nel modo seguente:
Impostare il membro VFId sull'identificatore del VF per il quale devono essere scritte le informazioni.
Impostare il membro BlockId sull'identificatore del blocco di configurazione da cui scrivere le informazioni.
Impostare il membro Length sul numero di byte da scrivere nel blocco di configurazione VF.
Impostare il membro BufferOffset sull'offset all'interno del buffer (a cui fa riferimento il membro InformationBuffer ) che contiene i dati da scrivere dal blocco di configurazione VF specificato. Questo offset viene specificato in unità di byte dall'inizio della struttura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS .
Quando gestisce la richiesta del set OID di OID_SRIOV_WRITE_VF_CONFIG_BLOCK, 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_BLOCK_PARAMETERS , disponga di risorse che sono state assegnate in precedenza. Il driver miniport PF alloca le risorse per un VF durante 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 deve verificare che il membro BlockId della struttura NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS specifica un blocco di configurazione VF valido. In caso contrario, il driver deve non riuscire la richiesta OID.
Per altre informazioni sulla comunicazione backchannel all'interno dell'interfaccia di virtualizzazione I/O radice singola ( SR-IOV), vedere SR-IOV PF/VF Backchannel Communication.
Il driver miniport restituisce uno dei codici di stato seguenti per la richiesta del set OID di OID_SRIOV_WRITE_VF_CONFIG_BLOCK:
Codice di stato | Descrizione |
---|---|
NDIS_STATUS_SUCCESS |
La richiesta OID è stata completata correttamente. |
NDIS_STATUS_NOT_SUPPORTED |
Il driver miniport non supporta l'interfaccia di virtualizzazione 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_BLOCK_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. |
Versione |
Supportato in NDIS 6.30 e versioni successive. |
Intestazione |
Ntddndis.h (include Ndis.h) |