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) |