Löschen eines NIC-Switches

Ein Netzwerkadapter, der die Single-Root-E/A-Virtualisierung (SR-IOV) unterstützt, muss einen NIC-Switch löschen können. Nur der Miniporttreiber für die PHYSISCHE FUNKTION (PCIe) des SR-IOV-Adapters kann einen NIC-Switch auf dem Adapter löschen.

Hinweis Ab NDIS 6.30 in Windows Server 2012 unterstützt die SR-IOV-Schnittstelle nur einen NIC-Switch auf dem Netzwerkadapter. Dieser Switch wird als Standard-NIC-Switch bezeichnet und vom bezeichner NDIS_DEFAULT_SWITCH_ID referenziert.

Vor dem Anhalten des PF-Miniporttreibers löscht NDIS den NIC-Switch, indem eine Objektbezeichner-Set-Anforderung (OID) OID_NIC_SWITCH_DELETE_SWITCH. Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält einen Zeiger auf eine NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS-Struktur , die den Bezeichner des zu löschenden Switches angibt.

NDIS erzwingt die folgenden Richtlinien, bevor die OID-Set-Anforderung von OID_NIC_SWITCH_DELETE_SWITCH an den PF-Miniporttreiber ausgegeben wird:

  • NDIS garantiert, dass alle Empfangsfilter von den standardmäßigen und nicht standardmäßigen virtuellen Ports (VPorts) auf dem NIC-Switch gelöscht wurden. Empfangsfilter werden durch eine OID-Set-Anforderung von OID_RECEIVE_FILTER_CLEAR_FILTER gelöscht.

  • NDIS garantiert, dass alle nicht standardmäßigen virtuellen Ports (VPorts), die auf dem Switch erstellt wurden, zuvor gelöscht wurden. VPorts werden über eine OID-Satzanforderung von OID_NIC_SWITCH_DELETE_VPORT gelöscht.

  • NDIS garantiert, dass alle Ressourcen für pcIe Virtual Functions (VFs), die an den NIC-Switch angefügt sind, zuvor freigegeben wurden. VFs werden über eine OID-Satzanforderung von OID_NIC_SWITCH_FREE_VF freigegeben.

Wenn er die OID-Methodenanforderung von OID_NIC_SWITCH_DELETE_SWITCH empfängt, muss der PF-Miniporttreiber die folgenden Schritte ausführen:

  1. Wenn der PF-Miniporttreiber die statische Erstellung und Konfiguration von NIC-Switches unterstützt, müssen die Softwareressourcen freigegeben werden, die dem angegebenen NIC-Switch zugeordnet sind. Der Treiber kann die Hardwareressourcen für den NIC-Switch jedoch nur freigeben, wenn MiniportHaltEx aufgerufen wird.

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

  2. Wenn der PF-Miniporttreiber die dynamische Erstellung und Konfiguration von NIC-Switches unterstützt, muss er die Hardware- und Softwareressourcen freigeben, die dem angegebenen NIC-Switch zugeordnet sind.

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

  3. Wenn der PF-Miniporttreiber die dynamische Erstellung von NIC-Switches unterstützt und alle NIC-Switches auf dem Netzwerkadapter gelöscht wurden, muss der Treiber die Virtualisierung auf dem Adapter deaktivieren, indem er NdisMEnableVirtualization aufruft. Um die Virtualisierung zu deaktivieren, muss der Netzwerkadapter den Parameter EnableVirtualization auf FALSE und den NumVFs-Parameter auf Null festlegen.

    NdisMEnableVirtualization löscht das NumVFs-Element und das VF Enable-Bit in der SR-IOV Extended Capability-Struktur im PCIe-Konfigurationsraum der PF des Netzwerkadapters.

    Hinweis Wenn der PF-Miniporttreiber die statische Erstellung und Konfiguration von NIC-Switches unterstützt, darf er nur NdisMEnableVirtualization aufrufen, wenn MiniportHaltEx aufgerufen wird.