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.

NotaNdisMQueryProbedBars deve essere chiamato solo dal driver miniport per la funzione fisica PCIe (PF).
 

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.

NotaNdisMQueryProbedBars restituisce un massimo di PCI_TYPE0_ADDRESSES valori all'interno di questa matrice.
 

Valore restituito

NdisMQueryProbedBars può restituire uno dei valori di stato seguenti.

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Operazione di query completata correttamente.
NDIS_STATUS_FAILURE
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.
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 (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

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionProbedBars

OID_SRIOV_PROBED_BARS