SRIOV_WRITE_BLOCK callback function (pcivirt.h)

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

Syntax

SRIOV_WRITE_BLOCK SriovWriteBlock;

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

Parameters

[in] Context

A pointer to a driver-defined context.

[in] VfIndex

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

[in] BlockId

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

[in] Buffer

A pointer to a buffer that contains the data to write to the VF's configuration space.

Length

The length in bytes of this write 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 WriteVfConfigBlock 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