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:
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.
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:
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.
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:
Wenn NDIS die FilterAttach-Funktion eines übergeordneten Filtertreibers aufruft, übergibt NDIS die SR-IOV-Funktionen des Netzwerkadapters über den AttachParameters-Parameter . Dieser Parameter enthält einen Zeiger auf eine NDIS_FILTER_ATTACH_PARAMETERS-Struktur . Das SriovCapabilities-Element dieser Struktur enthält einen Zeiger auf eine NDIS_SRIOV_CAPABILITIES-Struktur .
Wenn NDIS die ProtocolBindAdapterEx-Funktion eines übergeordneten Protokolltreibers aufruft, übergibt NDIS die SR-IOV-Funktionen des Netzwerkadapters über den BindParameters-Parameter . Dieser Parameter enthält einen Zeiger auf eine NDIS_FILTER_ATTACH_PARAMETERS-Struktur . Das SriovCapabilities-Element dieser Struktur enthält einen Zeiger auf eine NDIS_SRIOV_CAPABILITIES-Struktur .
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.