Freigeben über


Bestimmen der SR-IOV-Funktionen

In diesem Thema wird beschrieben, wie NDIS und übergeordnete Treiber die Sr-IOV-Funktionen (Single Root I/O Virtualization) eines Netzwerkadapters bestimmen. Dieses Thema enthält folgende Informationen:

Melden von SR-IOV-Funktionen während MiniportInitializeEx

Abfragen von SR-IOV-Funktionen durch Overlying-Treiber

Melden von SR-IOV-Funktionen während MiniportInitializeEx

Wenn NDIS die MiniportInitializeEx-Funktion des Miniporttreibers aufruft, stellt der Treiber die folgenden SR-IOV-Funktionen bereit:

  • Der vollständige Satz von SR-IOV-Hardwarefunktionen, die der Netzwerkadapter unterstützen kann.

  • Die SR-IOV-Funktionen, die derzeit auf dem Netzwerkadapter aktiviert sind.

  • Gibt an, ob der Miniporttreiber die PHYSISCHE FUNKTION (PF) oder die virtuelle Funktion (VF) von PCI Express (PCIe) auf dem Netzwerkadapter verwaltet.

Der Miniporttreiber meldet die SR-IOV-Hardwarefunktionen des zugrunde liegenden 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 die entsprechenden Flags im SriovCapabilities-Member fest, um SR-IOV-Funktionen zu melden.

    Wenn der Netzwerkadapter SR-IOV unterstützt, muss der Miniporttreiber für die physische FUNKTION PCI Express (PCIe) des Adapters die folgenden Flags festlegen:

    • NDIS_SRIOV_CAPS_SRIOV_SUPPORTED

    • NDIS_SRIOV_CAPS_PF_MINIPORT

    Hinweis

     Der Miniporttreiber für eine PCIe Virtual Function (VF) des Netzwerkadapters muss sowohl das flag NDIS_SRIOV_CAPS_VF_MINIPORT als auch das flag NDIS_SRIOV_CAPS_SRIOV_SUPPORTED festlegen.  

Wenn NDIS die MiniportInitializeEx-Funktion des Miniporttreibers aufruft, registriert der Treiber 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 den HardwareSriovCapabilities-Member auf einen Zeiger auf die zuvor initialisierte NDIS_SRIOV_CAPABILITIES-Struktur fest.

    Wenn die Registrierungseinstellung für die *SRIOV INF-Schlüsselwort (keyword) den Wert 1 aufweist, sind die SR-IOV-Funktionen derzeit auf dem Netzwerkadapter aktiviert. Der Miniporttreiber legt die CurrentSriovCapabilities-Member auf einen Zeiger auf dieselbe NDIS_SRIOV_CAPABILITIES-Struktur fest.

    Wenn die Registrierungseinstellung für die *SRIOV INF-Schlüsselwort (keyword) den Wert 0 hat, sind die SR-IOV-Funktionen derzeit auf dem Netzwerkadapter deaktiviert. Der Miniporttreiber muss den CurrentSriovCapabilities-Member auf NULL festlegen.

    Weitere Informationen zum *SRIOV INF-Schlüsselwort (keyword) finden Sie unter Standardisierte INF-Schlüsselwörter für SR-IOV.

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

Weitere Informationen zum Adapterinitialisierungsprozess finden Sie unter Initialisieren eines Miniportadapters.

Abfragen von SR-IOV-Funktionen durch Overlying-Treiber

NDIS übergibt die derzeit aktivierten SR-IOV-Funktionen des Netzwerkadapters an überlastende Treiber, die auf folgende Weise an den Netzwerkadapter gebunden sind:

NDIS gibt auch die NDIS_SRIOV_CAPABILITIES-Struktur zurück, wenn OID-Abfrageanforderungen (Object Identifier, Objektbezeichner) von OID_SRIOV_HARDWARE_CAPABILITIES und OID_SRIOV_CURRENT_CAPABILITIES verarbeitet werden, die von übergeordneten Protokoll- oder Filtertreibern ausgegeben werden.