Freigeben über


GET_VIRTUAL_DEVICE_LOCATION Rückruffunktion (wdm.h)

Die GetLocation Routine gibt den Gerätestandort einer virtuellen PCI Express-Funktion (PCIe) auf einem PCI-Bus zurück. Ein Gerät, das die Einzelne Root-E/A-Virtualisierung (SR-IOV) unterstützt, kann ein oder mehrere VFs auf dem PCI-Bus verfügbar machen.

Syntax

GET_VIRTUAL_DEVICE_LOCATION GetVirtualDeviceLocation;

NTSTATUS GetVirtualDeviceLocation(
  [in, out] PVOID Context,
  [in]      USHORT VirtualFunction,
  [out]     PUINT16 SegmentNumber,
  [out]     PUINT8 BusNumber,
  [out]     PUINT8 FunctionNumber
)
{...}

Parameter

[in, out] Context

Ein Zeiger auf schnittstellenspezifische Kontextinformationen. Der Aufrufer übergibt den Wert, der als Context Member der PCI_VIRTUALIZATION_INTERFACE Struktur für die Schnittstelle übergeben wird.

[in] VirtualFunction

Ein nullbasierter Wert, der den VF auf dem Gerät angibt, für das der Gerätespeicherort zurückgegeben wird

[out] SegmentNumber

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Routine einen UINT16-Wert für die aktuelle PCI-Segmentnummer zurückgibt. Dieser Wert gibt die Gruppe der PCI-Busse an, an denen das Gerät angeschlossen ist.

[out] BusNumber

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Routine einen UINT8-Wert zurückgibt. Dieser Wert gibt die aktuelle PCI-Busnummer an, an der das Gerät angeschlossen ist.

[out] FunctionNumber

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Routine einen UINT8-Wert zurückgibt. Dieser Wert enthält die Funktionsnummer für den angegebenen VF im PCI-Bus.

Rückgabewert

Die GetLocation Routine gibt einen der folgenden NTSTATUS-Werte zurück:

Rückgabecode Beschreibung
STATUS_SUCCESS Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_INVALID_PARAMETER Der parameter VirtualFunction ist größer als der Wert des TotalVFs Member der SR-IOV Extended Capability-Struktur für das Gerät.

Bemerkungen

Die GetLocation Routine gibt den aktuellen Gerätespeicherort eines VF in der PCIe-Hierarchie zurück. Diese Informationen sind für ein Virtualisierungssystem erforderlich, das eine I/O-Speicherverwaltungseinheit (IOMMU) verwendet, um den Datenverkehr an oder vom Gerät weiterzuleiten.

Bei einer erfolgreichen Rückgabe von einem Aufruf an die GetLocation Routine enthält der FunctionNumber Parameter einen Wert, der die Funktionsnummer für den angegebenen VF im PCI-Bus darstellt. Dieser Wert basiert auf der Option Alternative Routing Interpretation (ARI) der PCI Express 3.0-Spezifikation. ARI behandelt einen PCIe-Bus als einzelnes Gerät mit einem 8-Bit-Funktionsraum, der 256 Funktionen auf dem Bus ermöglicht.

Die GetLocation Routine wird von der GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle bereitgestellt.

Die PCI-Busnummer, auf der sich der VF befindet, kann sich ändern. Es wird nicht empfohlen, dass Treiber den Gerätespeicherort für einen VF im nicht volatile Speicher speichern, z. B. in der Registrierung.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt in Windows Server 2012 und höheren Versionen von Windows Server.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h)
IRQL- PASSIVE_LEVEL

Siehe auch

PCI_VIRTUALIZATION_INTERFACE