Condividi tramite


GET_VIRTUAL_FUNCTION_PROBED_BARS funzione di callback (wdm.h)

La routine GetVirtualFunctionProbedBars restituisce i valori delle registrazioni degli indirizzi di base (PCIe) di un dispositivo che supporta la singola interfaccia di virtualizzazione I/O radice (SR-IOV).

GetVirtualFunctionProbedBars restituisce i valori BAR segnalati dal dispositivo dopo una query eseguita dal driver del bus PCI. Questa query determina lo spazio di indirizzi di memoria o I/O richiesto dal dispositivo.

Sintassi

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

Parametri

[in, out] Context

Puntatore a informazioni di contesto specifiche dell'interfaccia. Il chiamante passa il valore passato come membro Context della struttura PCI_VIRTUALIZATION_INTERFACE per l'interfaccia.

[out] BaseRegisterValues

Puntatore a una matrice di valori ULONG. La routine GetVirtualFunctionProbedBars restituisce un valore per ogni BARRA del dispositivo.

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

Valore restituito

La routine GetVirtualFunctionProbedBars restituisce uno dei valori NTSTATUS seguenti:

Codice restituito Descrizione
STATUS_SUCCESS Operazione riuscita.
STATUS_INVALID_DEVICE_STATE Il dispositivo non supporta l'interfaccia SR-IOV.

Commenti

L'autista 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 barra del dispositivo. Il driver del bus PCI esegue questa query quando rileva per la prima volta l'adattatore sul bus.

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

  • Indica se un bar è supportato dal dispositivo.

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

Il driver PCI esegue questa query BAR come indicato di seguito:

  1. Il driver del bus PCI scrive 0xFFFFFFFF in un BAR.

  2. Il driver del bus PCI legge la barra per determinare lo spazio di memoria o di indirizzi richiesto dal dispositivo. Il valore zero indica che il dispositivo non supporta la barra.

La routine GetVirtualFunctionProbedBars viene fornita dall'interfaccia GUID_PCI_VIRTUALIZATION_INTERFACE .

Le note seguenti si applicano alla routine GetVirtualFunctionProbedBars :

  • L'interfaccia SR-IOV non richiede che i BAR di un PCIe VF siano conformi al protocollo per determinare le dimensioni del blocco di memoria o dello spazio indirizzi I/O di una barra. Di conseguenza, il driver PCI virtuale (VPCI), che viene eseguito nel sistema operativo guest, determina le dimensioni usando le dimensioni equivalenti delle richieste pull nel dispositivo fisico. Il driver VPCI ottiene queste informazioni chiamando la routine GetVirtualFunctionProbedBars .

  • Il driver VPCI richiede le dimensioni dello spazio indirizzi di memoria o I/O per ogni barra dopo l'avvio del dispositivo fisico. A questo punto, il driver PCI non può eseguire una query BAR nel dispositivo senza modificare il valore corrente della barra. Pertanto, quando la routine GetVirtualFunctionProbedBars viene chiamata dal driver VPCI, il driver PCI restituisce le informazioni BAR ottenute durante la query BAR. Il driver PCI ha eseguito questa query quando il dispositivo è stato rilevato per la prima volta nel bus.

Requisiti

Requisito Valore
Client minimo supportato Supportato in Windows Server 2012 e versioni successive di Windows.
Piattaforma di destinazione Desktop
Intestazione wdm.h (include Wdm.h)
IRQL PASSIVE_LEVEL

Vedi anche

PCI_VIRTUALIZATION_INTERFACE