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 PCI Express (PCIe) Virtual Function (VF) beschrieben. Der VF wird von einem Netzwerkadapter verfügbar gemacht, der die Einzelstamm-E/A-Virtualisierung (SINGLE Root I/O Virtualization, 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-Miniporttreibers

Der VF-Miniporttreiber führt die gleichen Schritte wie jeder NDIS-Miniporttreiber aus, 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 sie 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 die PF auf dem Adapter angefügt ist.

    Hinweis

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

  • 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üsselwörtern 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 Headerelement . Der Treiber legt den Typmember von Header auf NDIS_OBJECT_TYPE_DEFAULT fest.

      Ab NDIS 6.30 legt der Miniporttreiber den Member Revision von Header auf NDIS_SRIOV_CAPABILITIES _REVISION_1 und das Element Size auf NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1 fest.

    2. Der Miniporttreiber legt das NDIS_SRIOV_CAPS_PF_MINIPORT-Flag im SriovCapabilities-Member 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, indem er die folgenden Schritte ausführt:

    1. Der Miniporttreiber initialisiert eine NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES-Struktur .

      Der Miniporttreiber legt die Elemente HardwareSriovCapabilities und CurrentSriovCapabilities auf einen Zeiger auf die zuvor initialisierte NDIS_SRIOV_CAPABILITIES-Struktur fest.

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

  • 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 empfangsseitige Skalierung (RSS) ankündigen.

    Weitere Informationen zu RSS finden Sie unter Empfangsseitige Skalierung.