Freigeben über


NdisMEnableVirtualization-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMEnableVirtualization Funktion während der Erstellung oder Löschung eines NIC-Switches auf dem Netzwerkadapter auf. Durch Aufrufen dieser Funktion konfiguriert der Treiber die einzelne Stamm-E/A-Virtualisierung (SR-IOV) Extended Capability-Struktur im PCI Express -Konfigurationsraum (PCIe) für die physische Funktion des Netzwerkadapters (PF).

HinweisNdisMEnableVirtualization darf nur vom Miniporttreiber für die PF des Netzwerkadapters aufgerufen werden.
 

Syntax

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

Parameter

[in] NdisMiniportHandle

Das Netzwerkadapterhandle, das NDIS an den MiniportAdapterHandle Parameter von MiniportInitializeExübergeben hat.

[in] NumVFs

Ein USHORT-Wert, der die Anzahl der virtuellen Funktionen (VFs) enthält, die für den Netzwerkadapter aktiviert werden sollen. NdisMEnableVirtualization legt den NumVFs Member der SR-IOV Extended Capability-Struktur auf den Wert des NumVFs Parameter fest.

Hinweis Wenn der parameter EnableVirtualization FALSE ist, muss NumVFs- auf Null festgelegt werden.
 

[in] EnableVFMigration

Dieser Parameter ist für NDIS reserviert und muss auf FALSE festgelegt werden.

[in] EnableMigrationInterrupt

Dieser Parameter ist für NDIS reserviert und muss auf FALSE festgelegt werden.

[in] EnableVirtualization

Ein BOOLESCHER Wert, der angibt, ob die Virtualisierung im PCI-Konfigurationsraum des Netzwerkadapters aktiviert werden soll. Wenn EnableVirtualization WAHR ist, legt NdisMEnableVirtualization das VF Enable Bit des SR-IOV Control-Mitglieds fest. NdisMEnableVirtualization dieses Bit löscht, wenn EnableVirtualization FALSE ist.

Rückgabewert

NdisMEnableVirtualization kann einen der folgenden Statuswerte zurückgeben.

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS
Der Virtualisierungsvorgang wurde erfolgreich abgeschlossen.
NDIS_STATUS_NOT_SUPPORTED
Der Adapter oder das System unterstützt SR-IOV nicht.
NDIS_STATUS_INVALID_PARAMETER
Der parameter EnableVirtualization wird auf FALSE festgelegt, und der NumVFs Parameter wird auf einen Wert ungleich Null festgelegt.
NDIS_STATUS_FAILURE
Fehler beim Virtualisierungsvorgang.
Hinweis Die NdisMEnableVirtualization Funktion schlägt fehl, wenn die Virtualisierung aktiviert wird, wenn die Virtualisierung bereits aktiviert ist. Der Treiber muss zuerst die Virtualisierung deaktivieren (durch Aufrufen der Funktion mit der EnableVirtualization Parameter auf FALSE festgelegt), bevor der Treiber die Virtualisierung erneut aktivieren kann.
 

Bemerkungen

PF-Miniporttreiber rufen NdisMEnableVirtualization- auf, um die felder SR-IOV erweiterten Funktionen im PCI-Konfigurationsraum zu konfigurieren. Dieser Aufruf wird verwendet, um die Virtualisierung im Konfigurationsraum zu aktivieren oder zu deaktivieren und auch die Anzahl der VFs anzugeben, die vom Netzwerkadapter für die PCIe-Fabric verfügbar gemacht werden sollen.

Wenn der PF-Miniporttreiber eine OID-Methodenanforderung von OID_NIC_SWITCH_CREATE_SWITCHverarbeitet, ruft der Treiber NdisMEnableVirtualization auf, um die Virtualisierung auf dem Netzwerkadapter für den NIC-Switch zu aktivieren. Der Treiber führt dies durch Aufrufen NdisMEnableVirtualization mit den folgenden Parametereinstellungen aus.

Ausdruck Beschreibung
NumVFs Legen Sie die Anzahl der VFs fest, die für den NIC-Switch aktiviert werden sollen.
EnableVirtualization- Auf TRUE festgelegt.
 

Wenn der PF-Miniport-Treiber eine OID-Methodenanforderung von OID_NIC_SWITCH_DELETE_SWITCHverarbeitet, ruft der Treiber NdisMEnableVirtualization auf, um die Virtualisierung auf dem Netzwerkadapter zu deaktivieren. Der Treiber führt dies durch Aufrufen NdisMEnableVirtualization mit den folgenden Parametereinstellungen aus:

Ausdruck Beschreibung
NumVFs Auf Null festgelegt.
EnableVirtualization- Auf FALSE festgelegt.
 

Weitere Informationen zum Erstellen eines NIC-Schalters finden Sie unter Erstellen eines NIC-Switches.

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Übersicht über die Single Root I/O Virtualization (SR-IOV).

Interoperabilität mit einem virtuellen Bustreiber

Wenn ein unabhängiger Hardwareanbieter (IHV) einen virtuellen Bustreiber (VBD) als Teil seines SR-IOV Treiberpaketsbereitstellt, darf sein Miniporttreiber nicht NdisMEnableVirtualizationaufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit der VBD kommunizieren und anfordern, dass der VBD-Aufruf EnableVirtualization. Diese Funktion wird von der GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle bereitgestellt, die vom zugrunde liegenden PCI-Bustreiber unterstützt wird.

Die VBD, die im Verwaltungsbetriebssystem der Hyper-V übergeordneten Partition ausgeführt wird, kann die GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle abfragen, indem sie eine IRP_MN_QUERY_INTERFACE Anforderung an das physische Geräteobjekt (PDO) auf dem PCI-Bus ausgibt. Diese Anforderung muss von IRQL = PASSIVE_LEVEL erfolgen. In dieser Anforderung muss der Treiber den parameter InterfaceType auf GUID_PCI_VIRTUALIZATION_INTERFACE festlegen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in NDIS 6.30 und höher.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- PASSIVE_LEVEL

Siehe auch

EnableVirtualization-

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH