Condividi tramite


OID_SRIOV_PROBED_BARS

NDIS emette una richiesta di query OID (Object Identifier) di OID_SRIOV_PROBED_BARS per ottenere i valori dei registri degli indirizzi di base (BAR) di PCI Express (PCIe) di una scheda di rete. Questa funzione restituisce i valori BAR segnalati dalla scheda di rete dopo una query eseguita dal driver del bus PCI. Questa query determina lo spazio di indirizzi di memoria o 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 PCIe (PF) della scheda di rete. Questa richiesta di query OID è necessaria per i driver miniport PF che supportano l'interfaccia di virtualizzazione di I/O radice singola (SR-IOV).

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 richieste di archiviazione BAR PCI di una scheda di rete.

  • 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.

Osservazioni

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 indirizzi di memoria o I/O di ogni registro degli indirizzi DI BASE PCI della scheda di rete. Il driver del bus PCI esegue questa query quando rileva per la prima volta l'adattatore sul bus.

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

  • Indica se pci BAR è supportato dalla scheda di rete.

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

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

Poiché l'accesso allo spazio di configurazione PCI è un'operazione con privilegi, può essere eseguito solo dai componenti eseguiti nel sistema operativo di gestione di una Hyper-V partizione padre. Quando il driver del bus VPCI esegue una query su PCI BARs, NDIS invia 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 di indirizzi di memoria necessaria per la scheda di rete VF.

Nota richieste OID di OID_SRIOV_PROBED_BARS possono essere rilasciate solo da NDIS. La richiesta OID non deve essere eseguita tramite driver eccessivamente, 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 BaseRegisterValuesOffset membro 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 con lo 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 richieste bar di un dispositivo PCI, vedere PCI Local Bus Specification.

Per altre informazioni su come eseguire query sui registri PCI BAR per un VF, vedere l'eseguire 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

Richiesta OID completata.

NDIS_STATUS_NOT_SUPPORTED

Il driver miniport PF non supporta l'interfaccia di virtualizzazione I/O radice singola (SR-IOV) 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 il DATA. QUERY_INFORMATION. BytesNeeded membro nella struttura NDIS_OID_REQUEST alle dimensioni minime del buffer necessarie.

NDIS_STATUS_FAILURE

La richiesta non è riuscita per altri motivi.

Fabbisogno

Versione

Supportato in NDIS 6.30 e versioni successive.

Intestazione

Ntddndis.h (include Ndis.h)

Vedere anche


NDIS_OID_REQUEST

NDIS_SRIOV_PROBED_BARS_INFO

NdisMQueryProbedBars