// vpci.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
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.
SizeThe size, in bytes, of this structure.
VersionThe driver-defined interface version.
ContextA pointer to interface-specific context information.
InterfaceReferenceA pointer to an InterfaceReference routine that increments the interface's reference count.
InterfaceDereferenceA pointer to an InterfaceDereference routine that decrements the interface's reference count.
WriteVfConfigBlockA pointer to a WriteVfConfigBlock routine that writes a block of configuration data for a PCIe VF.
ReadVfConfigBlockA pointer to a ReadVfConfigBlock routine that reads a block of configuration data for a PCIe VF.
SerialNumberA 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.
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.