DXGKDDI_GETMMIORANGES回调函数 (dispmprt.h)

获取虚拟设备中单个 MMIO(内存映射输入输出)BAR(基址寄存器)的内存范围。

语法

DXGKDDI_GETMMIORANGES DxgkddiGetmmioranges;

NTSTATUS DxgkddiGetmmioranges(
  HANDLE Context,
  PDXGKARG_GETMMIORANGES pArgs
)
{...}

参数

Context

设备上下文的句柄。

pArgs

指向 DXGKARG_GETMMIORANGES 结构的指针。

返回值

返回:

  • STATUS_SUCCESS IHV 系统未遇到任何错误。
  • STATUS_INVALID_DEVICE_REQUEST虚拟设备遇到错误,应强行停止。 此处的故障将导致虚拟设备故障。
  • BUFFER_TO_SMALL可能会导致使用更大的缓冲区再次调用。

言论

此回调函数获取必须放置拦截和映射的特定范围。 这是一种比常规 SR-IOV(单根输入/输出虚拟化)解决方案更灵活的散点/收集映射,它允许 VF(虚拟函数)BAR(基址寄存器)的大小与物理条不同,并映射/模拟从任何物理条到任何虚拟条的任何页面顺序。 此函数必须包含虚拟栏中每个页面的映射。 如果未创建设备,则无法创建该设备。

要求

要求 价值
最低支持的客户端 Windows 10 版本 1809
标头 dispmprt.h
IRQL PASSIVE_LEVEL