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