Freigeben über


NdisMEnableVirtualization-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMEnableVirtualization-Funktion beim Erstellen oder Löschen eines NIC-Switches auf dem Netzwerkadapter auf. Durch Aufrufen dieser Funktion konfiguriert der Treiber die Struktur der erweiterten Funktionen (Single Root E/O Virtualization, SR-IOV) im PCI Express-Konfigurationsraum (PCIe) für die Physische Funktion (PF) des Netzwerkadapters.

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-Parameters 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 BOOLEAN-Wert, der angibt, ob die Virtualisierung im PCI-Konfigurationsraum des Netzwerkadapters aktiviert werden soll. Wenn EnableVirtualization TRUE ist, legt NdisMEnableVirtualization das VF Enable-Bit des SR-IOV Control-Members fest. NdisMEnableVirtualization löscht dieses Bit, wenn EnableVirtualization FALSE ist.

Rückgabewert

NdisMEnableVirtualization kann einen der folgenden status-Werte 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 ist auf FALSE festgelegt, und der NumVFs-Parameter ist auf einen Wert ohne Zero festgelegt.
NDIS_STATUS_FAILURE
Fehler beim Virtualisierungsvorgang.
Hinweis Die Funktion NdisMEnableVirtualization schlägt fehl, wenn sie aufgerufen wird, um die Virtualisierung zu aktivieren, wenn die Virtualisierung bereits aktiviert ist. Der Treiber muss zuerst die Virtualisierung deaktivieren (indem er die Funktion mit dem Parameter EnableVirtualization aufruft , der auf FALSE festgelegt ist), bevor der Treiber die Virtualisierung wieder aktivieren kann.
 

Hinweise

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

Wenn der PF-Miniporttreiber eine OID-Methodenanforderung von OID_NIC_SWITCH_CREATE_SWITCH verarbeitet, ruft der Treiber NdisMEnableVirtualization auf, um die Virtualisierung auf dem Netzwerkadapter für den NIC-Switch zu aktivieren. Dazu ruft der Treiber NdisMEnableVirtualization mit den folgenden Parametereinstellungen auf.

Begriff BESCHREIBUNG
NumVFs Legen Sie auf die Anzahl der VFs fest, die für den NIC-Switch aktiviert werden sollen.
AktivierenVirtualisierung Legen Sie auf TRUE fest.
 

Wenn der PF-Miniporttreiber eine OID-Methodenanforderung von OID_NIC_SWITCH_DELETE_SWITCH verarbeitet, ruft der Treiber NdisMEnableVirtualization auf, um die Virtualisierung auf dem Netzwerkadapter zu deaktivieren. Dazu ruft der Treiber NdisMEnableVirtualization mit den folgenden Parametereinstellungen auf:

Begriff BESCHREIBUNG
NumVFs Auf NULL festlegen.
AktivierenVirtualisierung Legen Sie auf FALSE fest.
 

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

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Overview of Single Root E/O Virtualization (SR-IOV).

Interfacing to a Virtual Bus Driver

Wenn ein unabhängiger Hardwareanbieter (Independent Hardware Vendor, IHV) als Teil des SR-IOV-Treiberpakets einen virtuellen Bustreiber (VBD) bereitstellt, darf sein Miniporttreiber NdisMEnableVirtualization nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD EnableVirtualization aufruft. 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 übergeordneten Hyper-V-Partition ausgeführt wird, kann die GUID_PCI_VIRTUALIZATION_INTERFACE-Schnittstelle abfragen, indem sie eine IRP_MN_QUERY_INTERFACE Anforderung an ihr physisches 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
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.30 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

EnableVirtualization

GUID_PCI_VIRTUALIZATION_INTERFACE

OID_NIC_SWITCH_CREATE_SWITCH

OID_NIC_SWITCH_DELETE_SWITCH