Skip to content

Latest commit

 

History

History
125 lines (79 loc) · 5.79 KB

nf-ndis-ndismgetvirtualfunctionbusdata.md

File metadata and controls

125 lines (79 loc) · 5.79 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.NdisMGetVirtualFunctionBusData
NdisMGetVirtualFunctionBusData function (ndis.h)
A miniport driver calls the NdisMGetVirtualFunctionBusData function to read data from the PCI Express (PCIe) configuration space of a specified Virtual Function (VF) on the network adapter.
netvista\ndismgetvirtualfunctionbusdata.htm
netvista
05/02/2018
NdisMGetVirtualFunctionBusData function
NdisMGetVirtualFunctionBusData, NdisMGetVirtualFunctionBusData function [Network Drivers Starting with Windows Vista], ndis/NdisMGetVirtualFunctionBusData, netvista.ndismgetvirtualfunctionbusdata
ndis.h
Ndis.h
Universal
None supported,Supported in NDIS 6.30 and later.
Windows Server 2012
Ndis.lib
<= DISPATCH_LEVEL
Windows
NdisMGetVirtualFunctionBusData
ndis/NdisMGetVirtualFunctionBusData
APIRef
kbSyntax
LibDef
ndis.lib
ndis.dll
NdisMGetVirtualFunctionBusData

NdisMGetVirtualFunctionBusData function

-description

A miniport driver calls the NdisMGetVirtualFunctionBusData function to read data from the PCI Express (PCIe) configuration space of a specified 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 from which the data from the PCI configuration space is returned.

-param Buffer [out]

A pointer to a buffer that receives the data that is read from the VF's PCI configuration space.

-param Offset [in]

The offset, in units of bytes, in the VF's PCI configuration space from which data is read.

-param Length [in]

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

Note  The size of the buffer referenced by Buffer must be at least as large as the value of the Length parameter.
 

-returns

NdisMGetVirtualFunctionBusData returns the number of bytes that are read from the PCI configuration space. If the read operation fails, NdisMGetVirtualFunctionBusData returns zero.

-remarks

The PF miniport driver typically calls NdisMGetVirtualFunctionBusData when it handles an OID method request of OID_SRIOV_READ_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 on how to query the VF's PCI configuration space, see Querying the PCI Configuration Space for a Virtual Function.

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 NdisMGetVirtualFunctionBusData. Instead, the driver must interface with the VBD through a private communication channel, and request that the VBD call GetVirtualFunctionData. 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

GetVirtualFunctionData

NdisMEnableVirtualization

OID_NIC_SWITCH_ALLOCATE_VF

OID_SRIOV_READ_VF_CONFIG_SPACE