Freigeben über


Initialisieren eines VF Miniport-Treibers

In diesem Thema werden die Richtlinien zum Schreiben einer MiniportInitializeEx-Funktion für den Miniporttreiber für eine virtuelle PCI Express -Funktion (PCIe) (VF) beschrieben. Der VF wird von einem Netzwerkadapter verfügbar gemacht, der die Einzelstamm-E/A-Virtualisierung (SR-IOV) unterstützt.

Hinweis

 Diese Richtlinien gelten nur für VF-Miniporttreiber des SR-IOV-Netzwerkadapters. Initialisierungsrichtlinien für den Miniporttreiber einer PCIe Physical Function (PF) des Adapters finden Sie unter Initialisieren eines PF Miniport-Treibers

Der VF Miniporttreiber folgt den gleichen Schritten wie jeder NDIS Miniporttreiber, wenn seine MiniportInitializeEx-Funktion aufgerufen wird. Weitere Informationen zu diesen Schritten finden Sie unter Initialisieren eines Miniporttreibers.

Zusätzlich zu diesen Schritten muss der VF Miniporttreiber die folgenden zusätzlichen Schritte ausführen, wenn NDIS die MiniportInitializeEx-Funktion des Treibers aufruft:

  • Der VF Miniporttreiber ruft die NdisGetHypervisorInfo-Funktion auf, um zu überprüfen, ob er in der untergeordneten Hyper-V-Partition ausgeführt wird. Diese Funktion gibt eine NDIS_HYPERVISOR_INFO Struktur zurück, die den Partitionstyp definiert. Wenn der Partitionstyp als NdisHypervisorPartitionMsHvChild gemeldet wird, wird der Miniporttreiber in einer untergeordneten Hyper-V-Partition ausgeführt, die an den PF auf dem Adapter angefügt ist.

    Hinweis

    Wenn der Partitionstyp als NdisHypervisorPartitionMsHvParent gemeldet wird, wird der Miniport-Treiber in der übergeordneten Hyper-V-Partition ausgeführt, die mit der PF auf dem Adapter verbunden ist. In diesem Fall darf der Miniporttreiber nicht als VF-Treiber initialisiert werden. Wenn möglich, muss der Treiber wie in der Initialisierungssequenz für PF Miniport-Treiber beschrieben als PF-Treiber initialisiert werden.

  • Im Gegensatz zum PF Miniporttreiber darf der VF Miniporttreiber nicht mit den standardisierten SR-IOV-Schlüsselwörtern installiert werden und darf nicht versuchen, diese Schlüsselwörter zu lesen. Weitere Informationen zu diesen Schlüsselwort finden Sie unter Standardisierte INF-Schlüsselwörter für SR-IOV.

  • Der VF Miniporttreiber meldet die SR-IOV-Hardwarefunktionen des zugrunde liegenden virtuellen Netzwerkadapters über eine NDIS_SRIOV_CAPABILITIES-Struktur, die wie folgt initialisiert wird:

    1. Der Miniporttreiber initialisiert das Header-Element . Der Treiber legt das Typelement-Element des Headers auf NDIS_OBJECT_TYPE_DEFAULT fest.

      Ab NDIS 6.30 setzt der Miniporttreiber das Element Revision von Header to NDIS_SRIOV_CAPABILITIES _REVISION_1 und das Element Sizeauf NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 fest.

    2. Der Miniport-Treiber legt die NDIS_SRIOV_CAPS_PF_MINIPORT Kennzeichnung im SriovCapabilitie-Element fest, um SR-IOV-Funktionen zu melden.

      Hinweis

      Der VF-Miniporttreiber muss sowohl das NDIS_SRIOV_CAPS_VF_MINIPORT-Flag als auch das NDIS_SRIOV_CAPS_SRIOV_SUPPORTED-Flag festlegen.

    Der VF Miniporttreiber registriert die SR-IOV-Funktionen des Netzwerkadapters mit den folgenden Schritten:

    1. Der Miniporttreiber initialisiert eine NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-Struktur.

      Der Miniporttreiber setzt die Elemente HardwareSriovCapabilities und CurrentSriovCapabilities uf einen Zeiger auf die zuvor initialisierte Struktur NDIS_SRIOV_CAPABILITIES.

    2. Der Treiber ruft NdisMSetMiniportAttributes auf und setzt den Parameter MiniportAttributes auf einen Zeiger auf die Struktur NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

  • Der VF Miniporttreiber darf keine VMQ-Funktionen (Virtual Machine Queue) ankündigen. Der Treiber kann jedoch Unterstützung für andere NDIS-Technologien wie Energieverwaltung und Rss -Skalierung (Side Scaling, RSS) bewerben.

    Weitere Informationen zu RSS finden Sie unter Receive Side Scaling.