OID_SRIOV_READ_VF_CONFIG_BLOCK
Un driver overlying genera una richiesta di metodo OID (Object Identifier) di OID_SRIOV_READ_VF_CONFIG_BLOCK per leggere i dati da un blocco di configurazione VF (PCI Express) (PCIe) specificato.
I driver overlying rilasciano questa richiesta di metodo OID al 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_READ_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 letti dal blocco di configurazione VF.
Spazio di buffer aggiuntivo per i dati da leggere dal 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 metodo OID di OID_SRIOV_READ_VF_CONFIG_BLOCK, il driver overlying deve impostare i membri della struttura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS nel modo seguente:
Impostare il membro VFId sull'identificatore del VF da cui leggere le informazioni.
Impostare il membro BlockId sull'identificatore del blocco di configurazione VF da cui leggere le informazioni.
Impostare il membro Length sul numero di byte da leggere dal blocco di configurazione.
Impostare il membro BufferOffset sull'offset all'interno del buffer (a cui fa riferimento il membro InformationBuffer ) che conterrà i dati letti dal blocco di configurazione VF specificato. Questo offset viene specificato in unità di byte dall'inizio della struttura NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS .
Quando gestisce la richiesta del metodo OID di OID_SRIOV_READ_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_READ_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_READ_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 PF restituisce uno dei codici di stato seguenti per la richiesta di metodo di OID_SRIOV_READ_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_READ_VF_CONFIG_BLOCK_PARAMETERS hanno valori non validi. |
NDIS_STATUS_INVALID_LENGTH |
Il buffer delle informazioni era troppo breve. Il driver miniport deve impostare i DATI. METHOD_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) |