SRIOV_READ_BLOCK callback function (pcivirt.h)

Reads data from the specified configuration block of a PCI Express SR-IOV Virtual Function (VF).

Syntax

SRIOV_READ_BLOCK SriovReadBlock;

NTSTATUS SriovReadBlock(
  [in]  PVOID Context,
  [in]  USHORT VfIndex,
  [in]  ULONG BlockId,
  [out] PVOID Buffer,
  [in]  ULONG Length
)
{...}

Parameters

[in] Context

A pointer to a driver-defined context.

[in] VfIndex

A zero-based index of the VF to which this read operation applies.

[in] BlockId

A number identifying the block to be read. This is defined by the provider of the PF driver.

[out] Buffer

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

[in] Length

The length in bytes of this read operation. Must not be greater than VPCI_MAX_READ_WRITE_BLOCK_SIZE defined in Pcivirt.h.

Return value

Return STATUS_SUCCESS if the operation succeeds. Otherwise, return an appropriate NTSTATUS error code.

Remarks

This callback function is implemented by the physical function (PF) driver. It is invoked when the system wants to read a configuration block for one of its VFs.

The PF driver registers its implementation by setting the ReadVfConfigBlock member of the SRIOV_DEVICE_INTERFACE_STANDARD, configuring a WDF_QUERY_INTERFACE_CONFIG structure, and calling WdfDeviceAddQueryInterface.

Requirements

Requirement Value
Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Target Platform Windows
Header pcivirt.h
IRQL PASSIVE_LEVEL