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.
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, von 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 Byteseinheiten im PCI-Konfigurationsraum des VF, aus dem Daten gelesen werden.
[in] Length
Die Länge der zu lesenden Daten in Byteseinheiten.
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.
Hinweise
Der PF-Miniporttreiber ruft in der Regel NdisMGetVirtualFunctionBusData auf, wenn er eine OID-Methodenanforderung von OID_SRIOV_READ_VF_CONFIG_SPACE verarbeitet.
Der Treiber kann diese Funktion jedoch jederzeit aufrufen, nachdem die Virtualisierung auf dem Netzwerkadapter durch einen Aufruf von NdisMEnableVirtualization aktiviert wurde.
Weitere Informationen zum Abfragen des PCI-Konfigurationsraums der VF finden Sie unter Abfragen des PCI-Konfigurationsraums für eine virtuelle Funktion.
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 NdisMGetVirtualFunctionBusData nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD GetVirtualFunctionData 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 | <= DISPATCH_LEVEL |
Weitere Informationen