// pcivirt.h
typedef struct _SRIOV_DEVICE_INTERFACE_STANDARD {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_REFERENCE InterfaceDereference;
PSRIOV_READ_CONFIG ReadVfConfig;
PSRIOV_WRITE_CONFIG WriteVfConfig;
PSRIOV_READ_BLOCK ReadVfConfigBlock;
PSRIOV_WRITE_BLOCK WriteVfConfigBlock;
PSRIOV_QUERY_PROBED_BARS QueryProbedBars;
PSRIOV_GET_VENDOR_AND_DEVICE_IDS GetVendorAndDevice;
PSRIOV_GET_DEVICE_LOCATION GetDeviceLocation;
PSRIOV_RESET_FUNCTION ResetVf;
PSRIOV_SET_POWER_STATE SetVfPowerState;
PSRIOV_GET_RESOURCE_FOR_BAR GetResourceForBar;
PSRIOV_QUERY_LUID QueryLuid;
} SRIOV_DEVICE_INTERFACE_STANDARD, SRIOV_DEVICE_INTERFACE_STANDARD;
View the official Windows Driver Kit DDI referenceNo description available.
Stores function pointers to callback functions implemented by the physical function (PF) driver in the device stack for the of the SR-IOV device.
SizeSize of this structure.
VersionVersion of this structure
ContextDriver-defined context passed by the driver.
InterfaceReferencePointer to a routine that increments the number of references to this interface. For more information about this routine, see InterfaceReference.
InterfaceDereferencePointer to a routine that decrements the number of references to this interface. For more information about this routine, see InterfaceDereference.
ReadVfConfigPointer to the driver's implementation of the SRIOV_READ_CONFIG callback function that serves as a handler for reading the VF’s configurations space from the non-privileged VM.
WriteVfConfigPointer to the driver's implementation of the SRIOV_WRITE_CONFIG callback function that serves as a handler for writing the VF’s configuration space from the non-privileged VM.
ReadVfConfigBlockPointer to the driver's implementation of the SRIOV_READ_BLOCK callback function that serves as a handler for reading blocks of configuration data from the non-privileged VM.
WriteVfConfigBlockPointer to the driver's implementation of the SRIOV_WRITE_BLOCK callback function that serves as a handler for writing blocks of configuration data from the non-privileged VM..
QueryProbedBarsPointer to the driver's implementation of the SRIOV_QUERY_PROBED_BARS callback function that allows a non-privileged VM to determine the value of the VF’s Base Address Registers if the value of -1 previously is written.
GetVendorAndDevicePointer to the driver's implementation of the SRIOV_GET_VENDOR_AND_DEVICE_IDS callback function that supplies the values from which the Plug and Play IDs for device is derived.
GetDeviceLocationPointer to the driver's implementation of the SRIOV_GET_DEVICE_LOCATION callback function that allows a non-privileged VM to determine the bus to which the device is attached.
ResetVfPointer to the driver's implementation of the SRIOV_RESET_FUNCTION callback function that causes the VF to be reset.
SetVfPowerStatePointer to the driver's implementation of the SRIOV_SET_POWER_STATE callback function that serves as a handle for changing the device’s power state from the non-privileged VM.
GetResourceForBarPointer to the driver's implementation of the SRIOV_GET_RESOURCE_FOR_BAR callback function that gets the translated resource for a specific BAR.
QueryLuidPointer to the driver's implementation of the SRIOV_QUERY_LUID callback function that gets the unique identifier of the VF.
typedef struct _SRIOV_DEVICE_INTERFACE_STANDARD {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_REFERENCE InterfaceDereference;
PSRIOV_READ_CONFIG ReadVfConfig;
PSRIOV_WRITE_CONFIG WriteVfConfig;
PSRIOV_READ_BLOCK ReadVfConfigBlock;
PSRIOV_WRITE_BLOCK WriteVfConfigBlock;
PSRIOV_QUERY_PROBED_BARS QueryProbedBars;
PSRIOV_GET_VENDOR_AND_DEVICE_IDS GetVendorAndDevice;
PSRIOV_GET_DEVICE_LOCATION GetDeviceLocation;
PSRIOV_RESET_FUNCTION ResetVf;
PSRIOV_SET_POWER_STATE SetVfPowerState;
PSRIOV_GET_RESOURCE_FOR_BAR GetResourceForBar;
PSRIOV_QUERY_LUID QueryLuid;
} SRIOV_DEVICE_INTERFACE_STANDARD, SRIOV_DEVICE_INTERFACE_STANDARD;
WDF_QUERY_INTERFACE_CONFIG_INIT