Funzione NdisMEnableVirtualization (ndis.h)

Un driver miniport chiama la funzione NdisMEnableVirtualization durante la creazione o l'eliminazione di un commutatore di interfaccia di rete sulla scheda di rete. Chiamando questa funzione, il driver configura la singola struttura delle funzionalità estese di I/O radice (SR-IOV) nello spazio di configurazione PCI Express (PCIe) per la funzione fisica (PF) della scheda di rete.

NotaNdisMEnableVirtualization deve essere chiamato solo dal driver miniport per il pf della scheda di rete.
 

Sintassi

NDIS_STATUS NdisMEnableVirtualization(
  [in] NDIS_HANDLE NdisMiniportHandle,
  [in] USHORT      NumVFs,
  [in] BOOLEAN     EnableVFMigration,
  [in] BOOLEAN     EnableMigrationInterrupt,
  [in] BOOLEAN     EnableVirtualization
);

Parametri

[in] NdisMiniportHandle

La scheda di rete gestisce l'NDIS passata al parametro MiniportAdapterHandle di MiniportInitializeEx.

[in] NumVFs

Valore USHORT che contiene il numero di funzioni virtuali da abilitare per la scheda di rete. NdisMEnableVirtualization imposta il membro NumVFs della struttura SR-IOV Extended Capability sul valore del parametro NumVFs .

Nota Se il parametro EnableVirtualization è FALSE, NumVFs deve essere impostato su zero.
 

[in] EnableVFMigration

Questo parametro è riservato per NDIS e deve essere impostato su FALSE.

[in] EnableMigrationInterrupt

Questo parametro è riservato per NDIS e deve essere impostato su FALSE.

[in] EnableVirtualization

Valore BOOLEAN che specifica se la virtualizzazione deve essere abilitata nello spazio di configurazione PCI della scheda di rete. Se EnableVirtualization è TRUE, NdisMEnableVirtualization imposta il bit VF Enable del membro SR-IOV Control. NdisMEnableVirtualization cancella questo bit se EnableVirtualization è FALSE.

Valore restituito

NdisMEnableVirtualization può restituire uno dei valori di stato seguenti.

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Operazione di virtualizzazione completata.
NDIS_STATUS_NOT_SUPPORTED
L'adattatore o il sistema non supporta SR-IOV.
NDIS_STATUS_INVALID_PARAMETER
Il parametro EnableVirtualization è impostato su FALSE e il parametro NumVFs è impostato su un valore diverso da zero.
NDIS_STATUS_FAILURE
Operazione di virtualizzazione non riuscita.
Nota La funzione NdisMEnableVirtualization ha esito negativo se viene chiamata per abilitare la virtualizzazione quando la virtualizzazione è già abilitata. Il driver deve prima disabilitare la virtualizzazione (chiamando la funzione con il parametro EnableVirtualization impostato su FALSE) prima che il driver possa riabilitare la virtualizzazione.
 

Commenti

I driver miniport PF chiamano NdisMEnableVirtualization per configurare i campi di funzionalità estese SR-IOV nello spazio di configurazione PCI. Questa chiamata viene usata per abilitare o disabilitare la virtualizzazione nello spazio di configurazione e specificare anche il numero di VFS che devono essere esposte all'infrastruttura PCIe dalla scheda di rete.

Quando il driver miniport PF gestisce una richiesta di metodo OID di OID_NIC_SWITCH_CREATE_SWITCH, il driver chiama NdisMEnableVirtualization per abilitare la virtualizzazione nella scheda di rete per il commutatore NIC. Il driver esegue questa operazione chiamando NdisMEnableVirtualization con le impostazioni dei parametri seguenti.

Termine Descrizione
NumVFs Impostare sul numero di VFS da abilitare per l'opzione della scheda di interfaccia di rete.
EnableVirtualization Impostare su TRUE.
 

Quando il driver miniport PF gestisce una richiesta di metodo OID di OID_NIC_SWITCH_DELETE_SWITCH, il driver chiama NdisMEnableVirtualization per disabilitare la virtualizzazione nella scheda di rete. Il driver esegue questa operazione chiamando NdisMEnableVirtualization con le impostazioni dei parametri seguenti:

Termine Descrizione
NumVFs Imposta su zero.
EnableVirtualization Impostare su FALSE.
 

Per altre informazioni su come creare un'opzione di interfaccia di rete, vedere Creazione di un commutatore di scheda di interfaccia di rete.

Per altre informazioni sull'interfaccia SR-IOV, vedere Panoramica di Single Root I/O Virtualization (SR-IOV).For more information about the SR-IOV interface, see Overview of Single Root I/O Virtualization (SR-IOV).

Interfaccia con un driver del bus virtuale

Se un fornitore di hardware indipendente (IHV) fornisce un driver bus virtuale (VBD) come parte del pacchetto driver SR-IOV, il driver miniport non deve chiamare NdisMEnableVirtualization. Al contrario, il driver deve interfacciarsi con vbd tramite un canale di comunicazione privato e richiedere che la chiamata VBD EnableVirtualization. Questa funzione viene fornita 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) nel 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.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.30 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h (include Ndis.h)
Libreria Ndis.lib
IRQL PASSIVE_LEVEL

Vedi anche

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH