ENABLE_VIRTUALIZATION回调函数 (wdm.h)

EnableVirtualization 例程启用或禁用支持单根 I/O 虚拟化(SR-IOV)接口的 PCI Express(PCIe)设备的虚拟化。

语法

ENABLE_VIRTUALIZATION EnableVirtualization;

NTSTATUS EnableVirtualization(
  [in, out] PVOID Context,
  [in]      UINT16 NumVFs,
  [in]      BOOLEAN EnableVfMigration,
  [in]      BOOLEAN EnableMigrationInterrupt,
  [in]      BOOLEAN EnableVirtualization
)
{...}

参数

[in, out] Context

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

[in] NumVFs

要为设备启用的 PCIe 虚拟函数(VF)的数量。 EnableVirtualization 例程将 PCIe SR-IOV 扩展功能结构的 NumVf 成员设置为 NumVF 参数的值。

如果 EnableVirtualization 参数 FALSE,则必须将 NumVF 参数设置为零。

[in] EnableVfMigration

一个布尔值,该值指示多根 I/O 虚拟化(MR-IOV)基函数(BF)是否可以在运行时将设备的 PCIe 物理功能(PF)动态重新预配为 VF。

此参数仅适用于支持 SR-IOV 和 MR-IOV 接口的设备。 如果设备仅支持 SR-IOV 接口而不是 MR-IOV 接口,驱动程序必须将此参数设置为 FALSE

[in] EnableMigrationInterrupt

一个 BOOLEAN 值,该值指示在 VF 迁移期间应屏蔽还是取消屏蔽与 PF 关联的中断。

如果 EnableVfMigration 参数 FALSE,驱动程序还必须将此参数设置为 FALSE

[in] EnableVirtualization

一个布尔值,该值指示是否在设备的 PCIe 配置空间上启用虚拟化。 如果 EnableVirtualization 参数 TRUE,则 EnableVirtualization 例程将设置 PCIe SR-IOV Control 字段的 VF Enable 位。 如果 EnableVirtualization 参数 FALSE,则 enableVirtualization 例程将清除此位。

返回值

EnableVirtualization 例程返回以下 NTSTATUS 值之一:

返回代码 描述
STATUS_SUCCESS 作已成功完成。
STATUS_INVALID_PARAMETER NumVF 参数为零或大于设备 SR-IOV 扩展功能结构的 TotalVF 成员的值。
STATUS_INVALID_DEVICE_STATE 已在设备上启用虚拟化,EnableVirtualization 参数 TRUE,或者已在设备上禁用虚拟化,并且 EnableVirtualization 参数 FALSE

言论

驱动程序调用 EnableVirtualization 例程,在 PCIe 配置空间中配置 SR-IOV 扩展功能字段。 此调用启用或禁用配置空间中的虚拟化,并指定设备应向 PCIe 构造公开的 VF 数。

EnableVirtualization 例程由 GUID_PCI_VIRTUALIZATION_INTERFACE 接口提供。

要求

要求 价值
最低支持的客户端 在 Windows Server 2012 及更高版本的 Windows 中受支持。
目标平台 桌面
标头 wdm.h (包括 Wdm.h)
IRQL IRQL <= DISPATCH_LEVEL

另请参阅

PCI_VIRTUALIZATION_INTERFACE