NdisMSetVirtualFunctionBusData-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMSetVirtualFunctionBusData-Funktion auf, um Daten in den PCI Express -Konfigurationsraum (PCIe) einer Virtual Function (VF) auf dem Netzwerkadapter zu schreiben.

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

Syntax

ULONG NdisMSetVirtualFunctionBusData(
  [in] NDIS_HANDLE            NdisMiniportHandle,
  [in] NDIS_SRIOV_FUNCTION_ID VFId,
  [in] 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, in den Daten in den PCI-Konfigurationsraum geschrieben werden.

[in] Buffer

Ein Zeiger auf einen Puffer, der die Daten enthält, die in den PCI-Konfigurationsraum geschrieben werden sollen.

[in] Offset

Der Offset in Byteseinheiten im PCI-Konfigurationsraum, in den Daten geschrieben werden.

[in] Length

Die Länge der zu schreibenden Daten in Byteseinheiten.

Rückgabewert

NdisMSetVirtualFunctionBusData gibt die Anzahl der Bytes zurück, die in den PCI-Konfigurationsraum geschrieben wurden. Wenn der Schreibvorgang fehlschlägt, gibt NdisMSetVirtualFunctionBusData null zurück.

Hinweise

Der PF-Miniporttreiber ruft in der Regel NdisMSetVirtualFunctionBusData auf, wenn er eine OID-Methodenanforderung von OID_SRIOV_WRITE_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 zur Backchannelkommunikation innerhalb der SR-IOV-Schnittstelle (Single Root E/O Virtualization) finden Sie unter SR-IOV PF/VF Backchannel Communication.

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 NdisMSetVirtualFunctionBusData nicht aufrufen. Stattdessen muss der Treiber über einen privaten Kommunikationskanal mit dem VBD kommunizieren und anfordern, dass der VBD SetVirtualFunctionData 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

GUID_PCI_VIRTUALIZATION_INTERFACE

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData