Freigeben über


Verarbeitung der OID_NIC_SWITCH_CREATE_SWITCH-Anfrage

NDIS verwendet die OID-Methode (Object Identifier) OID_NIC_SWITCH_CREATE_SWITCH, um Folgendes zu tun:

  • Aktivieren eines NIC Switches auf einem Netzwerkadapter, der statisch vom Miniport-Treiber für die PCI Express (PCIe) Physical Function (PF) erstellt wurde. Die PF ist eine Hardwarekomponente des Netzwerkadapters, die die Single Root I/O-Virtualisierung (SR-IOV) unterstützt.

    Ein NIC Switch wird vom PF Miniport-Treiber statisch aus dem Kontext des Aufrufs MiniportInitializeEx erstellt. Der Treiber weist die Ressourcen zu und erstellt den Switch anhand von Parametern, die aus den Registrierungseinstellungen gelesen werden.

  • Erstellen Sie dynamisch einen NIC-Switch auf einem Netzwerkadapter.

    Wenn der PF-Miniport-Treiber die statische Erstellung von NIC-Switches nicht unterstützt, weist der Miniport-Treiber die Ressourcen zu und erstellt den Switch auf der Grundlage von Parametern, die in der OID-Anfrage angegeben sind.

Der PF-Miniport-Treiber gibt seine Unterstützung für die SR-IOV-Schnittstelle bekannt, wenn NDIS die Funktion MiniportInitializeEx des Treibers aufruft. Wenn der PF-Miniport-Treiber SR-IOV unterstützt, liest NDIS die Konfiguration des NIC-Switches aus der Registrierung. Bevor NDIS eine OID-Methodenanforderung von OID_NIC_SWITCH_CREATE_SWITCH an den PF-Miniport-Treiber ausgibt, formatiert NDIS eine NDIS_NIC_SWITCH_PARAMETERS-Struktur mit den Registrierungsinformationen auf die folgende Weise:

  • NDIS legt das Mitglied SwitchType auf den Typ des NIC-Switches fest.

    Ab Windows Server 2012 unterstützt Windows nur den Switch-Typ NdisNicSwitchTypeExternal. Ein externer Switch gibt an, dass die virtuellen Ports (VPorts), die mit diesem Switch-Typ verbunden sind, über den physischen Port des Netzwerkadapters auf das externe Netzwerk zugreifen können.

    Weitere Informationen über den NIC Switch finden Sie unter SR-IOV Architektur.

  • NDIS legt das Mitglied SwitchId auf einen Identifikatorwert für den NIC-Switch fest. Der Switch Identifier ist eine ganze Zahl zwischen Null und der Anzahl der Switches, die der Netzwerkadapter unterstützt. Der Wert NDIS_DEFAULT_SWITCH_ID gibt den Standard-NIC-Switch an.

    Hinweis Ab Windows Server 2012 unterstützt die SR-IOV-Schnittstelle nur noch den Standard-NIC-Switch des Netzwerkadapters.

  • NDIS legt das Mitglied NumVFs fest, das die Anzahl der PCIe Virtual Function (VFs) angibt, die auf dem NIC-Switch zugewiesen werden können.

Wenn er die OID- Methodenanfrage OID_NIC_SWITCH_CREATE_SWITCH erhält, muss der PF-Miniport-Treiber Folgendes tun:

  1. Wenn der PF-Miniport-Treiber die statische Erstellung und Konfiguration von Switches unterstützt, erstellt er den NIC-Switch, wenn NDIS MiniportInitializeEx aufruft. Wenn der Treiber diese OID-Anfrage bearbeitet, muss er die Konfigurationsparameter in der Struktur NDIS_NIC_SWITCH_PARAMETERS überprüfen. Die Parameter müssen mit denen übereinstimmen, die der Treiber beim Aufruf von MiniportInitializeEx zur Erstellung des Switches verwendet hat. Wenn dies nicht der Fall ist, muss der Treiber die OID-Anfrage ablehnen.

    Weitere Informationen finden Sie unter Statische Erstellung eines NIC-Switches.

  2. Wenn der PF-Miniport-Treiber die dynamische Erstellung und Konfiguration eines Switches unterstützt, muss der Treiber die Konfigurationswerte der NDIS_NIC_SWITCH_PARAMETERS-Struktur validieren und den NIC-Switch auf der Grundlage dieser Werte erstellen.

    Weitere Informationen finden Sie unter Dynamische Erstellung eines NIC-Switches.

  3. Der PF-Miniport-Treiber muss die erforderlichen Hardware- und Software-Ressourcen für den Standard-VPort auf dem NIC-Switch zuweisen.

    Hinweis Der Standard-VPort wird immer durch eine OID-Anforderung von OID_NIC_SWITCH_CREATE_SWITCH erstellt und durch eine OID-Anfrage von OID_NIC_SWITCH_DELETE_SWITCH gelöscht. OID-Anfragen von OID_NIC_SWITCH_CREATE_VPORT und OID_NIC_SWITCH_DELETE_VPORT werden für die Erstellung und Löschung von nicht standardmäßigen VPorts auf dem NIC-Switch verwendet.

  4. Der PF-Miniport-Treiber, der die dynamische Erstellung und Konfiguration des Switches unterstützt, muss die SR-IOV-Virtualisierung auf dem Switch durch den Aufruf NdisMEnableVirtualization aktivieren. Dieser Aufruf konfiguriert das NumVFs-Mitglied und das VF Enable-Bit in der SR-IOV Extended Capability Struktur des PCI Express (PCIe)-Konfigurationsraums des Adapters.

    Weitere Informationen über den SR-IOV-Konfigurationsraum finden Sie in der PCI-SIG Single Root I/O Virtualisierung and Sharing 1.1-Spezifikation.

    Hinweis Wenn der PF-Miniport-Treiber die Erstellung statischer Switches unterstützt, aktiviert er die SR-IOV-Virtualisierung, nachdem er den Switch erstellt hat, wenn MiniportInitializeEx aufgerufen wird.

Wenn der PF-Miniport-Treiber die OID-Anfrage der Methode OID_NIC_SWITCH_CREATE_SWITCH erfolgreich abschließt, bietet er die Möglichkeit, Folgendes zu tun:

  • VFs können auf dem NIC-Switch durch OID-Anfragen der Methode OID_NIC_SWITCH_ALLOCATE_VF zugewiesen werden.

  • Nicht standardmäßige VPorts können auf dem NIC-Switch durch OID-Anfragen der Methode OID_NIC_SWITCH_CREATE_VPORT erstellt werden.

    Der Miniport-Treiber ist für die Verwaltung seines Pools von nicht standardmäßigen VPorts verantwortlich. Der Treiber gibt die Anzahl der nicht standardmäßigen VPorts in seinem Pool über das NumVPorts-Mitglied der NDIS_NIC_SWITCH_INFO-Struktur an. Der Treiber gibt diese Struktur über eine OID-Anfrage von OID_NIC_SWITCH_ENUM_SWITCHES zurück.

    Hinweis Der Netzwerkadapter muss immer einen Standard-VPort aus seinem Pool für den PF erstellen.