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

另请参阅

PCI_VIRTUALIZATION_INTERFACE