Funzione NdisMQueryProbedBars (ndis.h)
Un driver miniport chiama la funzione NdisMQueryProbedBars per ottenere i valori dei registri degli indirizzi di base (BAR) 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.
Sintassi
NDIS_STATUS NdisMQueryProbedBars(
[in] NDIS_HANDLE NdisMiniportHandle,
[out] PULONG BaseRegisterValues
);
Parametri
[in] NdisMiniportHandle
Handle della scheda di rete passato NDIS 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. |
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.
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 emette 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 di indirizzi di memoria necessaria per la 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 sui registri PCI BAR per un VF, vedere eseguire query sui registri degli indirizzi di base PCI di una funzione virtuale.
Per altre informazioni sull'interfaccia SR-IOV, vedere Panoramica della virtualizzazione I/O radice singola (SR-IOV).
interfaccia a un driver del bus virtuale
Se un fornitore di hardware indipendente (IHV) fornisce un driver del bus virtuale (VBD) come parte del pacchetto driver SR-IOV , il driver miniport non deve chiamare NdisMQueryProbedBars. Al contrario, il driver deve 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 di gestione della partizione padre Hyper-V può eseguire una query sull'interfaccia GUID_PCI_VIRTUALIZATION_INTERFACE inviando una richiesta di IRP_MN_QUERY_INTERFACE al relativo oggetto dispositivo fisico (PDO) sul 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.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato in NDIS 6.30 e versioni successive. |
piattaforma di destinazione | Universale |
intestazione | ndis.h (include Ndis.h) |
libreria | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Vedere anche