Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |