Freigeben über


NdisMGetVirtualFunctionBusData-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMGetVirtualFunctionBusData--Funktion auf, um Daten aus dem PCI Express (PCIe)-Konfigurationsraum einer angegebenen virtuellen Funktion (VF) auf dem Netzwerkadapter zu lesen.

HinweisNdisMGetVirtualFunctionBusData darf nur vom Miniporttreiber für die PCIe Physical Function (PF) des Netzwerkadapters aufgerufen werden.
 

Syntax

ULONG NdisMGetVirtualFunctionBusData(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PVOID                  Buffer,
  [in]  ULONG                  Offset,
  [in]  ULONG                  Length
);

Parameter

[in] NdisMiniportHandle

Das Netzwerkadapterhandle, das NDIS an den MiniportAdapterHandle Parameter von MiniportInitializeExübergeben hat.

[in] VFId

Der Bezeichner des VF, aus dem die Daten aus dem PCI-Konfigurationsraum zurückgegeben werden.

[out] Buffer

Ein Zeiger auf einen Puffer, der die Daten empfängt, die aus dem PCI-Konfigurationsraum des VF gelesen werden.

[in] Offset

Der Offset in Byteeinheiten im PCI-Konfigurationsraum des VF, aus dem Daten gelesen werden.

[in] Length

Die Länge der zu lesenden Daten in Byteeinheiten.

Hinweis Die Größe des Puffers, auf den von Buffer verwiesen wird, muss mindestens so groß sein wie der Wert des parameters Length.
 

Rückgabewert

NdisMGetVirtualFunctionBusData gibt die Anzahl der Bytes zurück, die aus dem PCI-Konfigurationsraum gelesen werden. Wenn der Lesevorgang fehlschlägt, gibt NdisMGetVirtualFunctionBusData Null zurück.

Bemerkungen

Der PF Miniport-Treiber ruft in der Regel NdisMGetVirtualFunctionBusData auf, wenn er eine OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACEverarbeitet.
Der Treiber kann diese Funktion jedoch jederzeit aufrufen, nachdem die Virtualisierung auf dem Netzwerkadapter über einen Aufruf von NdisMEnableVirtualizationaktiviert wurde.

Weitere Informationen zum Abfragen des PCI-Konfigurationsraums des VF finden Sie unter Abfragen des PCI-Konfigurationsraums für eine virtuelle Funktion.

Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Übersicht über die Single Root I/O Virtualization (SR-IOV).

Interoperabilität mit einem virtuellen Bustreiber

Wenn ein unabhängiger Hardwareanbieter (IHV) einen virtuellen Bustreiber (VBD) als Teil seines SR-IOV Treiberpaketsbereitstellt, darf sein Miniporttreiber nicht NdisMGetVirtualFunctionBusDataaufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD-Aufruf GetVirtualFunctionData. Diese Funktion wird von der GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle verfügbar gemacht, die vom zugrunde liegenden PCI-Bustreiber unterstützt wird.

Die VBD, die im Verwaltungsbetriebssystem der Hyper-V übergeordneten Partition ausgeführt wird, kann die GUID_PCI_VIRTUALIZATION_INTERFACE Schnittstelle abfragen, indem sie eine IRP_MN_QUERY_INTERFACE Anforderung an das physische Geräteobjekt (PDO) auf dem PCI-Bus ausgibt. Diese Anforderung muss von IRQL = PASSIVE_LEVEL erfolgen. In dieser Anforderung muss der Treiber den parameter InterfaceType auf GUID_PCI_VIRTUALIZATION_INTERFACE festlegen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Keine unterstützt,in NDIS 6.30 und höher unterstützt.
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- <= DISPATCH_LEVEL

Siehe auch

GUID_PCI_VIRTUALIZATION_INTERFACE

GetVirtualFunctionData-

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE