Condividi tramite


Funzione NdisMGetVirtualFunctionBusData (ndis.h)

Un driver miniport chiama la funzione NdisMGetVirtualFunctionBusData per leggere i dati dallo spazio di configurazione PCI Express (PCIe) di una funzione virtuale (VF) specificata nella scheda di rete.

NotaNdisMGetVirtualFunctionBusData deve essere chiamato solo dal driver miniport per la funzione fisica PCIe della scheda di rete.
 

Sintassi

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [in]  ULONG                  Length
);

Parametri

[in] NdisMiniportHandle

Handle della scheda di rete passato NDIS al parametro MiniportAdapterHandle di MiniportInitializeEx.

[in] VFId

Identificatore del VF da cui vengono restituiti i dati dello spazio di configurazione PCI.

[out] Buffer

Puntatore a un buffer che riceve i dati letti dallo spazio di configurazione PCI di VF.

[in] Offset

Offset, in unità di byte, nello spazio di configurazione PCI di VF da cui vengono letti i dati.

[in] Length

Lunghezza, in unità di byte, dei dati da leggere.

Nota La dimensione del buffer a cui fa riferimento buffer deve essere almeno uguale al valore del parametro Length.
 

Valore restituito

NdisMGetVirtualFunctionBusData restituisce il numero di byte letti dallo spazio di configurazione PCI. Se l'operazione di lettura non riesce, NdisMGetVirtualFunctionBusData restituisce zero.

Osservazioni

Il driver miniport PF chiama in genere NdisMGetVirtualFunctionBusData quando gestisce una richiesta di metodo OID di OID_SRIOV_READ_VF_CONFIG_SPACE.
Tuttavia, il driver può chiamare questa funzione ogni volta che la virtualizzazione è stata abilitata nella scheda di rete tramite una chiamata a NdisMEnableVirtualization.

Per altre informazioni su come eseguire una query sullo spazio di configurazione PCI di VF, vedere Querying the PCI Configuration Space for a Virtual Function.

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 NdisMGetVirtualFunctionBusData. Al contrario, il driver deve interfacciarsi con VBD tramite un canale di comunicazione privato e richiedere che la chiamata VBD GetVirtualFunctionData. 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 Nessuna supportata, supportata in NDIS 6.30 e versioni successive.
server minimo supportato Windows Server 2012
piattaforma di destinazione Universale
intestazione ndis.h (include Ndis.h)
libreria Ndis.lib
IRQL <= DISPATCH_LEVEL

Vedere anche

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE