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.
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.
[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 |
---|---|
|
Der Virtualisierungsvorgang wurde erfolgreich abgeschlossen. |
|
Der Adapter oder das System unterstützt SR-IOV nicht. |
|
Der Parameter EnableVirtualization ist auf FALSE festgelegt, und der NumVFs-Parameter ist auf einen Wert ohne Zero festgelegt. |
|
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