Funzione NdisMQueryProbedBars (ndis.h)
Un driver miniport chiama la funzione NdisMQueryProbedBars per ottenere i valori dei registri indirizzi 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.
Sintassi
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
Parametri
[in] NdisMiniportHandle
L'handle della scheda di rete passato al parametro MiniportAdapterHandle di MiniportInitializeEx.
[out] BaseRegisterValues
Puntatore a una matrice di valori ULONG. La matrice contiene un valore ULONG per ogni BARRA della scheda di rete PCIe.
Valore restituito
NdisMQueryProbedBars può restituire uno dei valori di stato seguenti.
Codice restituito | Descrizione |
---|---|
|
Operazione di query completata correttamente. |
|
Operazione di query non riuscita. |
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.
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 (Object Identifier) 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.
Durante la gestione di questa richiesta OID, il driver può chiamare NdisMQueryProbedBars per ottenere i valori restituiti dalla query BAR eseguita dal driver PCI.
Per altre informazioni su come eseguire query su registri PCI BAR per un VF, vedere Esecuzione di query sui registri degli indirizzi di base PCI di una funzione virtuale.
Per altre informazioni sull'interfaccia SR-IOV, vedere Panoramica di Single Root I/O Virtualization (SR-IOV).
Interfaccia a un driver del bus virtuale
Se un fornitore hardware indipendente (IHV) fornisce un driver del bus virtuale (VBD) come parte del pacchetto driver SR-IOV, il driver miniport non deve chiamare NdisMQueryProbedBars. Il driver deve invece interfacciarsi con VBD tramite un canale di comunicazione privato e richiedere che la chiamata VBD GetVirtualFunctionProbedBars. Questa funzione viene esposta dall'interfaccia GUID_PCI_VIRTUALIZATION_INTERFACE supportata dal driver del bus PCI sottostante.Il VBD eseguito nel sistema operativo della partizione padre Hyper-V può eseguire query sull'interfaccia di GUID_PCI_VIRTUALIZATION_INTERFACE eseguendo una richiesta di IRP_MN_QUERY_INTERFACE al relativo oggetto dispositivo fisico (PDO) nel bus PCI. Questa richiesta deve essere effettuata da IRQL = PASSIVE_LEVEL. In questa richiesta, il driver deve impostare il parametro InterfaceType su GUID_PCI_VIRTUALIZATION_INTERFACE.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in NDIS 6.30 e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ndis.h (includere Ndis.h) |
Libreria | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Vedi anche