Freigeben über


GET_VIRTUAL_FUNCTION_PROBED_BARS Rückruffunktion (wdm.h)

Die GetVirtualFunctionProbedBars Routine gibt die Werte der PCI Express (PCIe) Base Address Registers (BARs) eines Geräts zurück, das die einzelne Stamm-E/A-Virtualisierung (SR-IOV) -Schnittstelle unterstützt.

GetVirtualFunctionProbedBars gibt die BAR-Werte zurück, die vom Gerät nach einer Abfrage gemeldet wurden, die vom PCI-Bustreiber ausgeführt wurde. Diese Abfrage bestimmt den Arbeitsspeicher oder den E/A-Adressraum, der vom Gerät benötigt wird.

Syntax

GET_VIRTUAL_FUNCTION_PROBED_BARS GetVirtualFunctionProbedBars;

NTSTATUS GetVirtualFunctionProbedBars(
  [in, out] PVOID Context,
  [out]     PULONG BaseRegisterValues
)
{...}

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.

[out] BaseRegisterValues

Ein Zeiger auf ein Array von ULONG-Werten. Die GetVirtualFunctionProbedBars Routine gibt einen Wert für jeden BALKEN des Geräts zurück.

GetVirtualFunctionProbedBars gibt maximal PCI_TYPE0_ADDRESSES Werte innerhalb dieses Arrays zurück.

Rückgabewert

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

Rückgabecode Beschreibung
STATUS_SUCCESS Der Vorgang wurde erfolgreich abgeschlossen.
STATUS_INVALID_DEVICE_STATE Das Gerät unterstützt die SR-IOV-Schnittstelle nicht.

Bemerkungen

Der PCI-Bustreiber. die im Verwaltungsbetriebssystem der Hyper-V übergeordneten Partition ausgeführt wird, fragt die Speicher- oder E/A-Adressraumanforderungen der einzelnen BALKEN des Geräts ab. Der PCI-Bustreiber führt diese Abfrage aus, wenn der Adapter zuerst auf dem Bus erkannt wird.

Durch diese BAR-Abfrage bestimmt der PCI-Bustreiber Folgendes:

  • Gibt an, ob eine LEISTE vom Gerät unterstützt wird.

  • Wenn eine LEISTE unterstützt wird, wie viel Arbeitsspeicher oder E/A-Adressraum für die LEISTE erforderlich ist.

Der PCI-Treiber führt diese BAR-Abfrage wie folgt aus:

  1. Der PCI-Bustreiber schreibt 0xFFFFFFFF in einen BAR.The PCI bus driver writes 0xFFFFFFFF to a BAR.

  2. Der PCI-Bustreiber liest die BAR vor, um den vom Gerät benötigten Speicher oder Adressraum zu bestimmen. Ein Wert von Null gibt an, dass das Gerät die LEISTE nicht unterstützt.

Die GetVirtualFunctionProbedBars Routine wird von der GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle bereitgestellt.

Die folgenden Hinweise gelten für die GetVirtualFunctionProbedBars Routine:

  • Die SR-IOV Schnittstelle erfordert nicht, dass die BARs eines PCIe VF dem Protokoll entsprechen, um die Größe des Speicherblocks oder des E/A-Adressraums eines BALKENs zu bestimmen. Daher bestimmt der virtuelle PCI-Treiber (PCII), der im Gastbetriebssystem ausgeführt wird, die Größe mithilfe der entsprechenden Größe der BARs auf dem physischen Gerät. Der VORGANGStreiber ruft diese Informationen durch Aufrufen der GetVirtualFunctionProbedBars Routine ab.

  • Der ASSEMBLYI-Treiber benötigt die Größe des Speicher- oder E/A-Adressraums für jeden BAR, nachdem das physische Gerät gestartet wurde. Zu diesem Zeitpunkt kann der PCI-Treiber keine BAR-Abfrage auf dem Gerät ausführen, ohne den aktuellen Wert der LEISTE zu ändern. Wenn die GetVirtualFunctionProbedBars Routine vom PCI-Treiber aufgerufen wird, gibt der PCI-Treiber die BAR-Informationen zurück, die er während der BAR-Abfrage erhalten hat. Der PCI-Treiber hat diese Abfrage ausgeführt, als das Gerät erstmals auf dem Bus erkannt wurde.

Anforderungen

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

Siehe auch

PCI_VIRTUALIZATION_INTERFACE