Auflisten virtueller Ports auf einem Netzwerkadapter

Ein übermäßiger Treiber oder eine Benutzeranwendung kann eine Liste aller virtuellen Ports (VPorts) auf einem NIC-Switch eines Netzwerkadapters abrufen, der die Single Root-E/A-Virtualisierung (SINGLE Root I/O Virtualization, SR-IOV) unterstützt. Der Treiber oder die Anwendung gibt eine OID-Methodenanforderung (Object Identifier) von OID_NIC_SWITCH_ENUM_VPORTS aus, um diese Liste abzurufen.

Nach einer erfolgreichen Rückgabe dieser OID-Abfrageanforderung enthält der InformationBuffer-Member der NDIS_OID_REQUEST-Struktur einen Zeiger auf einen Puffer, der Folgendes enthält:

Bevor der übergeordnete Treiber oder die Benutzeranwendung die OID_NIC_SWITCH_ENUM_VPORTS-Anforderung ausgibt, muss eine NDIS_NIC_SWITCH_VPORT_INFO_ARRAY-Struktur initialisiert werden , die zusammen mit der Anforderung übergeben wird. Der Treiber oder die Anwendung muss beim Initialisieren der NDIS_NIC_SWITCH_VPORT_INFO_ARRAY-Struktur die folgenden Richtlinien befolgen:

  • Wenn das flag NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_SWITCH im Flags-Element festgelegt ist, werden Informationen für alle VPorts zurückgegeben, die auf einem angegebenen NIC-Switch erstellt wurden. Der NIC-Switch wird vom SwitchId-Member dieser Struktur angegeben.

    Hinweis Ab 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. Unabhängig von den Flags, die im Flags-Member festgelegt sind, muss das SwitchId-Element auf NDIS_DEFAULT_SWITCH_ID festgelegt werden.

  • Wenn das flag NDIS_NIC_SWITCH_VPORT_INFO_ARRAY_ENUM_ON_SPECIFIC_FUNCTION im Flags-Element festgelegt ist, werden Informationen für alle VPorts zurückgegeben, die an eine angegebene PHYSISCHE FUNKTION (PCIe) oder eine virtuelle Funktion (VF) auf dem Netzwerkadapter angefügt sind. Die PF oder VF wird vom AttachedFunctionId-Member dieser Struktur angegeben.

    Wenn der AttachedFunctionId-Member auf NDIS_PF_FUNCTION_ID festgelegt ist, werden Informationen für alle VPorts zurückgegeben. Dies schließt den Standard-VPort ein, der an die PF angefügt ist. Wenn das AttachedFunctionId-Element auf einen gültigen VF-Bezeichner festgelegt ist, werden Informationen für alle VPorts zurückgegeben, die an den angegebenen VF angefügt sind.

    Hinweis Ab Windows Server 2012 kann nur ein nicht standardmäßiger VPort an einen VF angefügt werden. Allerdings können mehrere VPorts (einschließlich des Standard-VPorts) an die PF angefügt werden.

  • Wenn das Flags-Element auf 0 festgelegt ist, werden Informationen für alle VPorts zurückgegeben, die an die PF oder VF auf dem Netzwerkadapter angefügt sind. In diesem Fall werden die Werte von SwitchId und AttachedFunctionId ignoriert.

NDIS verarbeitet die OID_NIC_SWITCH_ENUM_VPORTS-Anforderung für Miniporttreiber. NDIS gibt die Informationen aus einem internen Cache der Daten zurück, die es bei der Überprüfung der folgenden Quellen verwaltet: