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 |