GET_VIRTUAL_DEVICE_LOCATION Rückruffunktion (wdm.h)

Die GetLocation-Routine gibt den Gerätestandort einer pci Express (PCIe) Virtual Function (VF) auf einem PCI-Bus zurück. Ein Gerät, das die SR-IOV-Schnittstelle (Single Root E/O Virtualization) unterstützt, kann einen 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 Kontextelement der PCI_VIRTUALIZATION_INTERFACE-Struktur für die Schnittstelle übergeben wird.

[in] VirtualFunction

Ein nullbasierter Wert, der die VF auf dem Gerät angibt, für das der Gerätestandort 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 von PCI-Bussen an, an die das Gerät angefügt 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 die 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 die angegebene VF auf dem 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 VirtualFunction-Parameter ist größer als der Wert des TotalVFs-Members der SR-IOV Extended Capability-Struktur für das Gerät.

Hinweise

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

Nach erfolgreicher Rückkehr von einem Aufruf der GetLocation-Routine enthält der Parameter FunctionNumber einen Wert, der die Funktionsnummer für die angegebene VF auf dem PCI-Bus darstellt. Dieser Wert basiert auf der Option Alternative Routinginterpretation (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 die VF befindet, kann sich ändern. Es wird nicht empfohlen, dass Treiber den Gerätespeicherort für eine VF in einem nicht flüchtigen Speicher wie der Registrierung speichern.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird in Windows Server 2012 und höheren Versionen von Windows Server unterstützt.
Zielplattform Desktop
Kopfzeile wdm.h (einschließen von Wdm.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

PCI_VIRTUALIZATION_INTERFACE