VPCI_INTERFACE_STANDARD structure (vpci.h)

The VPCI_INTERFACE_STANDARD interface structure enables device drivers to access blocks of configuration data that is specific to a PCI Express (PCIe) virtual function (VF) of devices that support the single root I/O virtualization (SR-IOV) interface.

This structure describes the GUID_VPCI_INTERFACE_STANDARD interface.

Note

The location of the VF configuration block and the format of the configuration data are defined by the independent hardware vendor (IHV) of the device. They are used only by the drivers of the PCIe physical function (PF) and the VF.

Syntax

typedef struct _VPCI_INTERFACE_STANDARD {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
  PVPCI_WRITE_BLOCK      WriteVfConfigBlock;
  PVPCI_READ_BLOCK       ReadVfConfigBlock;
  UINT32                 SerialNumber;
} VPCI_INTERFACE_STANDARD, *PVPCI_INTERFACE_STANDARD;

Members

Size

The size, in bytes, of this structure.

Version

The driver-defined interface version.

Context

A pointer to interface-specific context information.

InterfaceReference

A pointer to an InterfaceReference routine that increments the interface's reference count.

InterfaceDereference

A pointer to an InterfaceDereference routine that decrements the interface's reference count.

WriteVfConfigBlock

A pointer to a WriteVfConfigBlock routine that writes a block of configuration data for a PCIe VF.

ReadVfConfigBlock

A pointer to a ReadVfConfigBlock routine that reads a block of configuration data for a PCIe VF.

SerialNumber

A UINT32 value that contains the serial number for the PCIe VF on the device. The virtualization stack generates a unique serial number for each VF that is exposed on the device.

Remarks

The GUID_VPCI_INTERFACE_STANDARD interface is provided by the virtual PCI (VPCI) bus driver that creates the physical device objects (PDOs) that are layered below the loaded drivers for the VFs. These drivers are loaded in the guest operating system that runs in a Hyper-V child partition.

A driver obtains a pointer to the VPCI_INTERFACE_STANDARD structure by sending an IRP_MN_QUERY_INTERFACE IRP to its bus driver with InterfaceType set to GUID_VPCI_INTERFACE_STANDARD.

Requirements

Requirement Value
Minimum supported server Windows Server 2012
Header vpci.h

See also

InterfaceDereference

InterfaceReference

IRP_MN_QUERY_INTERFACE

ReadVfConfigBlock

WriteVfConfigBlock