Freigeben über


NdisMGetVirtualFunctionLocation-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMGetVirtualFunctionLocation Funktion auf, um den Gerätestandort einer PCI Express (PCIe) Virtual Function (VF) auf einem PCI-Bus abzufragen. Der Treiber verwendet den Gerätespeicherort, um die PCIe-Anforderungs-ID (RID) für den VF zu erstellen.

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

Syntax

VOID NdisMGetVirtualFunctionLocation(
  [in]  NDIS_HANDLE            NdisMiniportHandle,
  [in]  NDIS_SRIOV_FUNCTION_ID VFId,
  [out] PUSHORT                SegmentNumber,
  [out] PUCHAR                 BusNumber,
  [out] PUCHAR                 FunctionNumber
);

Parameter

[in] NdisMiniportHandle

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

[in] VFId

Der Bezeichner des VF, für den der Gerätespeicherort zurückgegeben wird.

[out] SegmentNumber

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion einen USHORT-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 Funktion einen UCHAR-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 Funktion einen UCHAR-Wert zurückgibt. Dieser Wert gibt die Funktionsnummer eines logischen Geräts auf dem Gerät an.

Rückgabewert

Nichts

Bemerkungen

Wenn sie eine Methodenanforderung von OID_NIC_SWITCH_ALLOCATE_VFverarbeitet, muss der PF-Miniporttreiber das RID für den VF zurückgeben, den der Treiber erfolgreich auf dem Netzwerkadapter zugewiesen hat. Der Treiber generiert das RID wie folgt:

  1. Der Treiber ruft zuerst die funktion NdisMGetVirtualFunctionLocation auf, um die informationen zu den busbezogenen Standortinformationen für den VF abzurufen.
  2. Der Treiber ruft dann das NDIS_MAKE_RID Makro mit den busbezogenen Standortinformationen auf, um die RID zu generieren.

Weitere Informationen zum Zuordnen von VF-Ressourcen finden Sie unter Virtual Function Initialization Sequence.

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 NdisMGetVirtualFunctionLocationaufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit der VBD kommunizieren und anfordern, dass der VBD-Aufruf GetLocation-. 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- PASSIVE_LEVEL

Siehe auch

GUID_PCI_VIRTUALIZATION_INTERFACE

GetLocation-

NDIS_MAKE_RID

OID_NIC_SWITCH_ALLOCATE_VF