GET_VIRTUAL_DEVICE_LOCATION funzione di callback (wdm.h)
La routine GetLocation restituisce la posizione del dispositivo di una funzione virtuale PCI Express (PCIe) in un bus PCI. Un dispositivo che supporta l'interfaccia DI virtualizzazione I/O (SR-IOV) singola può esporre una o più VFS nel bus PCI.
Sintassi
GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;
NTSTATUS GetVirtualDeviceLocation(
[in, out] PVOID Context,
[in] USHORT VirtualFunction,
[out] PUINT16 SegmentNumber,
[out] PUINT8 BusNumber,
[out] PUINT8 FunctionNumber
)
{...}
Parametri
[in, out] Context
Puntatore a informazioni di contesto specifiche dell'interfaccia. Il chiamante passa il valore passato come membro Contesto della struttura di PCI_VIRTUALIZATION_INTERFACE per l'interfaccia.
[in] VirtualFunction
Valore in base zero che specifica il VF nel dispositivo per il quale viene restituita la posizione del dispositivo
[out] SegmentNumber
Puntatore a una variabile fornita dal chiamante in cui questa routine restituisce un valore UINT16 per il numero di segmento PCI corrente. Questo valore specifica il gruppo di bus PCI in cui è collegato il dispositivo.
[out] BusNumber
Puntatore a una variabile fornita dal chiamante in cui questa routine restituisce un valore UINT8. Questo valore specifica il numero di bus PCI corrente in cui è collegato il dispositivo.
[out] FunctionNumber
Puntatore a una variabile fornita dal chiamante in cui questa routine restituisce un valore UINT8. Questo valore contiene il numero di funzione per il VF specificato nel bus PCI.
Valore restituito
La routine GetLocation restituisce uno dei valori NTSTATUS seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | Operazione riuscita. |
STATUS_INVALID_PARAMETER | Il parametro VirtualFunction è maggiore del valore del membro TotalVFs della struttura funzionalità estesa SR-IOV per il dispositivo. |
Commenti
La routine GetLocation restituisce la posizione corrente del dispositivo di un VF nella gerarchia PCIe. Queste informazioni sono necessarie per un sistema di virtualizzazione che usa un'unità di gestione della memoria I/O (IOMMU) per instradare il traffico verso o dal dispositivo.
Al termine di una chiamata alla routine GetLocation , il parametro FunctionNumber contiene un valore che rappresenta il numero di funzione per il VF specificato nel bus PCI. Questo valore si basa sull'opzione ARI (Alternative Routing Interpretation) della specifica PCI Express 3.0. ARI tratta un bus PCIe come singolo dispositivo con uno spazio di funzione a 8 bit, che consente 256 funzioni sul bus.
La routine GetLocation viene fornita dall'interfaccia GUID_PCI_VIRTUALIZATION_INTERFACE .
Il numero del bus PCI in cui si trova il VF può cambiare. Non è consigliabile che i driver archiviino la posizione del dispositivo per un VF nell'archiviazione nonvolatile, ad esempio il Registro di sistema.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in Windows Server 2012 e versioni successive di Windows Server. |
Piattaforma di destinazione | Desktop |
Intestazione | wdm.h (include Wdm.h) |
IRQL | PASSIVE_LEVEL |