ENABLE_VIRTUALIZATION回调函数 (wdm.h)
EnableVirtualization 例程启用或禁用 PCI Express (PCIe) 设备的虚拟化,该设备支持单根 I/O 虚拟化 (SR-IOV) 接口。
语法
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结构的 Context 成员传递的值。
[in] NumVFs
要为设备启用的 VF) (PCIe 虚拟函数的数量。 EnableVirtualization 例程将 PCIe SR-IOV 扩展功能结构的 NumVF 成员设置为 NumVF 参数的值。
如果 EnableVirtualization 参数为 FALSE,则必须将 NumVFs 参数设置为零。
[in] EnableVfMigration
一个 BOOLEAN 值,指示多根 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
一个 BOOLEAN 值,指示是否在设备的 PCIe 配置空间上启用虚拟化。 如果 EnableVirtualization 参数为 TRUE,则 EnableVirtualization 例程设置 PCIe SR-IOV 控制字段的 VF Enable 位。 如果 EnableVirtualization 参数为 FALSE,EnableVirtualization 例程将清除此位。
返回值
EnableVirtualization 例程返回以下 NTSTATUS 值之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 操作已成功完成。 |
STATUS_INVALID_PARAMETER | NumVFs 参数为零或大于设备的 SR-IOV 扩展功能结构的 TotalVFs 成员的值。 |
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 |