Freigeben über


SRIOV_GET_VENDOR_AND_DEVICE_IDS Rückruffunktion (pcivirt.h)

Stellt die Anbieter- und Geräte-ID für eine PCI Express SR-IOV Virtual Function (VF) bereit, die zum Generieren einer generischeren Plug & Play-ID für die VF verwendet werden soll. Diese IDs können nicht direkt aus dem Konfigurationsraum des Vf gelesen werden.

Syntax

SRIOV_GET_VENDOR_AND_DEVICE_IDS SriovGetVendorAndDeviceIds;

void SriovGetVendorAndDeviceIds(
  [in]  PVOID Context,
  [in]  USHORT VfIndex,
  [out] PUSHORT VendorId,
  [out] PUSHORT DeviceId
)
{...}

Parameter

[in] Context

Ein Zeiger auf einen vom Treiber definierten Kontext.

[in] VfIndex

Ein nullbasierter Index des VF, für den dieser Schreibvorgang gilt.

[out] VendorId

Ein Zeiger auf eine USHORT-Variable, die mit der Anbieter-ID des VF gefüllt ist.

[out] DeviceId

Ein Zeiger auf eine USHORT-Variable, die mit der Geräte-ID des VF gefüllt ist.

Rückgabewert

Keine

Bemerkungen

Diese Rückruffunktion wird vom Treiber der physischen Funktion (PF) implementiert. Sie wird aufgerufen, wenn das System die Anbieter- und Gerätebezeichner des angegebenen VF abrufen möchte.

Die PCI Express SR-IOV-Spezifikation erfordert, dass alle VFs über die gleichen Anbieter- und Geräte-IDs verfügen. Dies ist eine Anforderung für kompatible Hardware. Es ist jedoch möglich, VFs so bereitzustellen, dass sich ihre Funktionen voneinander unterscheiden, und es ist oft nützlich, verschiedene Treiber auf unterschiedliche Hardware zu laden. So ermöglicht Windows dem PF-Treiber die Bereitstellung separater Geräte- und Anbieter-IDs (mit unterschiedlichen Klassencodes über die Konfigurationsraumschnittstellen), sodass jede VF mit den Plug & Play IDs angezeigt werden kann, die für ihre Verwendung am besten geeignet sind.

Der PF-Treiber registriert seine Implementierung, indem er das GetVendorAndDevice-Element des SRIOV_DEVICE_INTERFACE_STANDARD festlegt, eine WDF_QUERY_INTERFACE_CONFIG-Struktur konfiguriert und WdfDeviceAddQueryInterface aufruft.

Hier sehen Sie eine Beispielimplementierung dieser Rückruffunktion.

Virtualization_GetVendorAndDevice (
    _In_    PVOID           Context,
    _In_    USHORT          VfIndex,
    _Out_   PUSHORT         VendorId,
    _Out_   PUSHORT         DeviceId
    )
{
    PDEVICE_CONTEXT deviceContext;

    UNREFERENCED_PARAMETER(VfIndex);
    PAGED_CODE();

    deviceContext = (PDEVICE_CONTEXT)Context;

    *VendorId = deviceContext->VendorId;
    *DeviceId = deviceContext->DeviceId;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10
Unterstützte Mindestversion (Server) Windows Server 2016
Zielplattform Windows
Kopfzeile pcivirt.h
IRQL PASSIVE_LEVEL