Condividi tramite


GET_VIRTUAL_FUNCTION_PROBED_BARS funzione di callback (wdm.h)

La routine GetVirtualFunctionProbedBars restituisce i valori dell'interfaccia PCI Express (PCIe) Base Address Registers (BAR) di un dispositivo che supporta la singola interfaccia di 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 valori PCI_TYPE0_ADDRESSES all'interno della matrice.

Valore restituito

La routine GetVirtualFunctionProbedBars restituisce uno dei valori NTSTATUS seguenti:

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

Osservazioni

L'autista del bus PCI. che viene eseguito nel sistema operativo di gestione della Hyper-V partizione padre, esegue una query sui requisiti di spazio degli 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 I/O necessario 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. Un valore pari a 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 le richieste bars di un VF PCIe siano conformi al protocollo per determinare le dimensioni del blocco di memoria o dello spazio indirizzi I/O di una barra. Pertanto, il driver PCI virtuale (VPCI), che viene eseguito nel sistema operativo guest, determina le dimensioni usando le dimensioni equivalenti delle richieste di accesso in base alle richieste di accesso in base al dispositivo fisico. Il driver VPCI ottiene queste informazioni chiamando la routine getVirtualFunctionProbedBars.

  • Il driver VPCI richiede la dimensione dello spazio di 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 sul bus.

Fabbisogno

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

Vedere anche

PCI_VIRTUALIZATION_INTERFACE