Skip to content

Latest commit

 

History

History
121 lines (76 loc) · 5.58 KB

nf-ndis-ndismsetvirtualfunctionbusdata.md

File metadata and controls

121 lines (76 loc) · 5.58 KB
UID title description old-location tech.root ms.date keywords ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NF:ndis.NdisMSetVirtualFunctionBusData
NdisMSetVirtualFunctionBusData function (ndis.h)
A miniport driver calls the NdisMSetVirtualFunctionBusData function to write data to the PCI Express (PCIe) configuration space of a Virtual Function (VF) on the network adapter.
netvista\ndismsetvirtualfunctionbusdata.htm
netvista
05/02/2018
NdisMSetVirtualFunctionBusData function
NdisMSetVirtualFunctionBusData, NdisMSetVirtualFunctionBusData function [Network Drivers Starting with Windows Vista], ndis/NdisMSetVirtualFunctionBusData, netvista.ndismsetvirtualfunctionbusdata
ndis.h
Ndis.h
Universal
None supported,Supported in NDIS 6.30 and later.
Windows Server 2012
Ndis.lib
<= DISPATCH_LEVEL
Windows
NdisMSetVirtualFunctionBusData
ndis/NdisMSetVirtualFunctionBusData
APIRef
kbSyntax
LibDef
ndis.lib
ndis.dll
NdisMSetVirtualFunctionBusData

NdisMSetVirtualFunctionBusData function

-description

A miniport driver calls the NdisMSetVirtualFunctionBusData function to write data to the PCI Express (PCIe) configuration space of a Virtual Function (VF) on the network adapter.

Note  NdisMGetVirtualFunctionBusData must only be called by the miniport driver for the network adapter's PCIe Physical Function (PF).
 

-parameters

-param NdisMiniportHandle [in]

The network adapter handle that NDIS passed to the MiniportAdapterHandle parameter of MiniportInitializeEx.

-param VFId [in]

The identifier of the VF to which data is written to its PCI configuration space.

-param Buffer [in]

A pointer to a buffer that contains the data to be written to the PCI configuration space.

-param Offset [in]

The offset, in units of bytes, in the PCI configuration space to which data is written.

-param Length [in]

The length, in units of bytes, of the data to be written.

-returns

NdisMSetVirtualFunctionBusData returns the number of bytes written to the PCI configuration space. If the write operation fails, NdisMSetVirtualFunctionBusData returns zero.

-remarks

The PF miniport driver typically calls NdisMSetVirtualFunctionBusData when it handles an OID method request of OID_SRIOV_WRITE_VF_CONFIG_SPACE.
However, the driver can call this function any time after virtualization has been enabled on the network adapter through a call to NdisMEnableVirtualization.

For more information about backchannel communication within the single root I/O virtualization (SR-IOV) interface, see SR-IOV PF/VF Backchannel Communication.

For more information about the SR-IOV interface, see Overview of Single Root I/O Virtualization (SR-IOV).

Interfacing to a Virtual Bus Driver

If an independent hardware vendor (IHV) provides a virtual bus driver (VBD) as part of its SR-IOV driver package, its miniport driver must not call NdisMSetVirtualFunctionBusData. Instead, the driver must interface with the VBD through a private communication channel, and request that the VBD call SetVirtualFunctionData. This function is exposed from the GUID_PCI_VIRTUALIZATION_INTERFACE interface that is supported by the underlying PCI bus driver.

The VBD that runs in the Hyper-V parent partition's management operating system can query the GUID_PCI_VIRTUALIZATION_INTERFACE interface by issuing an IRP_MN_QUERY_INTERFACE request to its physical device object (PDO) on the PCI bus. This request must be made from IRQL = PASSIVE_LEVEL. In this request, the driver must set the InterfaceType parameter to GUID_PCI_VIRTUALIZATION_INTERFACE.

-see-also

GUID_PCI_VIRTUALIZATION_INTERFACE

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_WRITE_VF_CONFIG_SPACE

SetVirtualFunctionData