Condividi tramite


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.

Commenti

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.

Codici di stato restituiti

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.

Requisiti

Versione

Supportato in NDIS 6.30 e versioni successive.

Intestazione

Ntddndis.h (include Ndis.h)

Vedi anche


NDIS_OID_REQUEST

NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE