Funzione NdisMGetVirtualFunctionLocation (ndis.h)
Un driver miniport chiama la funzione NdisMGetVirtualFunctionLocation per eseguire una query sulla posizione del dispositivo di una funzione virtuale PCI Express (PCIe) su un bus PCI. Il driver usa la posizione del dispositivo per costruire l'ID del richiedente PCIe (RID) per VF.
Sintassi
void NdisMGetVirtualFunctionLocation(
[in] NDIS_HANDLE NdisMiniportHandle,
[in] NDIS_SRIOV_FUNCTION_ID VFId,
[out] PUSHORT SegmentNumber,
[out] PUCHAR BusNumber,
[out] PUCHAR FunctionNumber
);
Parametri
[in] NdisMiniportHandle
Handle della scheda di rete passato NDIS al parametro MiniportAdapterHandle di MiniportInitializeEx.
[in] VFId
Identificatore del VF per il quale viene restituita la posizione del dispositivo.
[out] SegmentNumber
Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce un valore USHORT per il numero di segmento PCI corrente. Questo valore specifica il gruppo di bus PCI su cui è collegato il dispositivo.
[out] BusNumber
Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce un valore UCHAR. Questo valore specifica il numero corrente del bus PCI in cui è collegato il dispositivo.
[out] FunctionNumber
Puntatore a una variabile fornita dal chiamante in cui questa funzione restituisce un valore UCHAR. Questo valore specifica il numero di funzione di un dispositivo logico nel dispositivo.
Valore restituito
Nessuno
Osservazioni
Quando gestisce una richiesta di metodo di OID_NIC_SWITCH_ALLOCATE_VF, il driver miniport PF deve restituire il RID per il VF allocato correttamente sul driver nella scheda di rete. Il driver genera il RID nel modo seguente:
- Il driver chiama prima la funzione NdisMGetVirtualFunctionLocation per ottenere le informazioni sulla posizione relative al bus per il VF.
- Il driver chiama quindi la macro NDIS_MAKE_RID con le informazioni sulla posizione relative al bus per generare il RID.
Per altre informazioni su come allocare risorse VF, vedere Virtual Function Initialization Sequence.
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 NdisMGetVirtualFunctionLocation. Al contrario, il driver deve interfacciarsi con vbd tramite un canale di comunicazione privato e richiedere che la chiamata VBD GetLocation. 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 | PASSIVE_LEVEL |
Vedere anche