OID_SRIOV_PROBED_BARS

NDIS genera una richiesta di query OID (Object Identifier) di OID_SRIOV_PROBED_BARS per ottenere i valori dei registri indirizzi di base di PCI Express (PCIe) di una scheda di rete. Questa funzione restituisce i valori BAR segnalati dalla scheda di rete seguendo una query eseguita dal driver del bus PCI. Questa query determina lo spazio di indirizzi di memoria o di I/O richiesto dalla scheda di rete.

NDIS genera richieste di query OID di OID_SRIOV_PROBED_BARS al driver miniport per la funzione fisica PF (PCIe Physical Function) della scheda di rete. Questa richiesta di query 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. Questo buffer è formattato per contenere quanto segue:

  • Struttura NDIS_SRIOV_PROBED_BARS_INFO che contiene i parametri per un'operazione di lettura nelle schede di rete PCI BARs.

  • Matrice di valori ULONG per ogni BARRA della scheda di rete PCIe. Il numero massimo di elementi all'interno di questa matrice è PCI_TYPE0_ADDRESSES.

Commenti

Il driver del bus PCI, che viene eseguito nel sistema operativo di gestione della partizione padre Hyper-V, esegue una query sui requisiti dello spazio di spazio di memoria o I/O di ogni registro indirizzi DI BASE PCI (BAR) della scheda di rete. Il driver del bus PCI esegue questa query quando rileva prima l'adattatore sul bus.

Tramite questa query PCI BAR, il driver del bus PCI determina quanto segue:

  • Se un bar PCI è supportato dalla scheda di rete.

  • Se è supportata una BARRA, la quantità di memoria o lo spazio degli indirizzi di I/O necessario per la barra.

Il driver del bus PCI virtuale viene eseguito nel sistema operativo guest di una partizione figlio Hyper-V. Quando una funzione virtuale PCI Express (PCIe) viene collegata alla partizione figlio, il driver del bus VPCI espone una scheda di rete virtuale per la scheda di rete VF (VF). Prima di eseguire questa operazione, il driver del bus VPCI deve eseguire una query PCI BAR per determinare lo spazio di memoria o di indirizzi richiesto dalla scheda di rete VF.

Poiché l'accesso allo spazio di configurazione PCI è un'operazione con privilegi, può essere eseguita solo dai componenti eseguiti nel sistema operativo di gestione di una partizione padre Hyper-V. Quando il driver del bus VPCI esegue una query su PCI BARs, NDIS genera una richiesta di query OID di OID_SRIOV_PROBED_BARS al driver miniport PF. I risultati restituiti da questa richiesta di query OID vengono inoltrati al driver del bus VPCI in modo che possa determinare la quantità di spazio degli indirizzi di memoria necessario dalla scheda di rete VF.

Nota Le richieste OID di OID_SRIOV_PROBED_BARS possono essere rilasciate solo da NDIS. La richiesta OID non deve essere rilasciata da driver sovrainvolgere, ad esempio il protocollo dei driver di filtro.

La richiesta di query OID_SRIOV_PROBED_BARS contiene una struttura NDIS_SRIOV_PROBED_BARS_INFO . Quando il driver miniport PF gestisce questo OID, il driver deve restituire i valori PCI BAR all'interno della matrice a cui fa riferimento il membro BaseRegisterValuesOffset della struttura NDIS_SRIOV_PROBED_BARS_INFO . Per ogni offset all'interno della matrice, il driver miniport PF deve impostare l'elemento matrice sul valore ULONG della BARRA nello stesso offset all'interno dello spazio di configurazione PCI dell'adattatore fisico.

Ogni valore BAR restituito dal driver deve essere lo stesso valore che segue una query PCI BAR eseguita dal driver PCI eseguito nel sistema operativo di gestione. Il driver miniport PF può chiamare NdisMQueryProbedBars per determinare queste informazioni.

Per altre informazioni sulle bar di un dispositivo PCI, vedere La specifica del bus locale PCI.

Per altre informazioni su come eseguire query su registri PCI BAR per un VF, vedere La query sui registri degli indirizzi di base PCI di una funzione virtuale.

Codici di stato restituiti

Il driver miniport PF restituisce uno dei codici di stato seguenti per la richiesta di query di OID_SRIOV_PROBED_BARS:

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_PROBED_BARS_INFO hanno valori non validi.

NDIS_STATUS_INVALID_LENGTH

Il buffer delle informazioni è minore di (sizeof(NDIS_SRIOV_PROBED_BARS_INFO) + PCI_TYPE0_ADDRESSES). Il driver miniport PF deve impostare i DATI. QUERY_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_PROBED_BARS_INFO

NdisMQueryProbedBars