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.
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ätestandort 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 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 Funktion einen UCHAR-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 Funktion einen UCHAR-Wert zurückgibt. Dieser Wert gibt die Funktionsnummer eines logischen Geräts auf dem Gerät an.
Rückgabewert
Keine
Bemerkungen
Wenn er eine Methodenanforderung von OID_NIC_SWITCH_ALLOCATE_VF verarbeitet, muss der PF-Miniporttreiber die RID für den VF zurückgeben, den der Treiber erfolgreich auf dem Netzwerkadapter zugeordnet hat. Der Treiber generiert die RID auf folgende Weise:
- Der Treiber ruft zuerst die NdisMGetVirtualFunctionLocation-Funktion auf, um die busbezogenen Standortinformationen für die VF abzurufen.
- Der Treiber ruft dann das makro NDIS_MAKE_RID mit den busbezogenen Standortinformationen auf, um die RID zu generieren.
Weitere Informationen zum Zuweisen von VF-Ressourcen finden Sie unter Initialisierungssequenz für virtuelle Funktionen.
Weitere Informationen zur SR-IOV-Schnittstelle finden Sie unter Overview of Single Root E/O Virtualization (SR-IOV).
Interfacing to a Virtual Bus Driver
Wenn ein unabhängiger Hardwareanbieter (Independent Hardware Vendor, IHV) als Teil des SR-IOV-Treiberpakets einen virtuellen Bustreiber (VBD) bereitstellt, darf sein Miniporttreiber NdisMGetVirtualFunctionLocation nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD GetLocation aufruft. Diese Funktion wird über die GUID_PCI_VIRTUALIZATION_INTERFACE-Schnittstelle verfügbar gemacht, die vom zugrunde liegenden PCI-Bustreiber unterstützt wird.Die VBD, die im Verwaltungsbetriebssystem der übergeordneten Hyper-V-Partition ausgeführt wird, kann die GUID_PCI_VIRTUALIZATION_INTERFACE-Schnittstelle abfragen, indem sie eine IRP_MN_QUERY_INTERFACE Anforderung an ihr physisches 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 |
---|---|
Unterstützte Mindestversion (Client) | Keine unterstützt, wird in NDIS 6.30 und höher unterstützt. |
Unterstützte Mindestversion (Server) | Windows Server 2012 |
Zielplattform | Universell |
Header | ndis.h (einschließlich Ndis.h) |
Bibliothek | Ndis.lib |
IRQL | PASSIVE_LEVEL |
Weitere Informationen