(vpci.h) 的VPCI_WRITE_BLOCK回调函数

WriteVfConfigBlock 例程为 PCI Express 虚拟函数写入配置数据块, (VF) 。 此例程由支持单根 I/O 虚拟化 (SR-IOV) 接口的设备上的 PCIe VF 驱动程序调用。

语法

VPCI_WRITE_BLOCK VpciWriteBlock;

NTSTATUS VpciWriteBlock(
  PVOID Context,
  ULONG BlockId,
  PVOID Buffer,
  ULONG Length
)
{...}

参数

Context

[in]指向特定于接口的上下文信息的指针。 调用方传递作为接口VPCI_INTERFACE_STANDARD结构的 Context 成员传递的值。

BlockId

[in]要写入的 VF 配置块的标识符。 此标识符是独立硬件供应商 (IHV) 的专有标识符,仅供设备上的 PCIe 物理功能 (PF) 和 VF 的驱动程序使用。

Buffer

[in]指向调用方分配的缓冲区的指针,该缓冲区包含要写入的配置数据。 有关详细信息,请参阅“备注”。

Length

[in]要写入 VF 配置块的字节数。

注意

此参数的值不得超过 VPCI_MAX_READ_WRITE_BLOCK_SIZE

返回值

如果操作成功, ReadVfConfigBlock 例程将返回 STATUS_SUCCESS 。 否则,例程将返回相应的 NTSTATUS 值。

注解

调用 WriteVfConfigBlock 例程时,将通知 PF 的驱动程序使用指定的数据更新指定的 VF 配置块。

VF 配置块用于 PCIe PF 的驱动程序与支持 SR-IOV 接口的设备上的 VF 之间的反向通道通信。 IHV 可以为设备定义一个或多个 VF 配置块。 每个 VF 配置块都有 IHV 定义的格式、长度和块 ID。

VF 配置数据可以在以下驱动程序之间以受保护的方式交换:

  • VF 驱动程序,在来宾操作系统中运行。 此操作系统在 Hyper-V 子分区中运行。
  • 在管理操作系统中运行的 PF 驱动程序。 此操作系统在 Hyper-V 父分区中运行。

每个 VF 配置块中的数据仅由 PF 和 VF 的驱动程序使用。

注意

IOCTL_VPCI_WRITE_BLOCK IOCTL 提供了 WriteVfConfigBlock 例程的异步替代项。

要求

要求
最低受支持的服务器 Windows Server 2012
标头 vpci.h
IRQL <= DISPATCH_LEVEL

另请参阅

IOCTL_VPCI_WRITE_BLOCK

VPCI_INTERFACE_STANDARD