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 |