使用有保证的协定 DMA 缓冲区模型
Windows Vista 的显示驱动程序模型保证呈现设备的 DMA 缓冲区和修补程序位置列表的大小。 修补程序位置列表包含 DMA 缓冲区中命令引用的资源的物理内存地址。
在有保证的协定模式下,用户模式显示驱动程序知道 DMA 缓冲区和修补程序位置列表的确切大小,当用户模式显示驱动程序填充命令缓冲区并调用 pfnRenderCb 将它们提交到显示微型端口驱动程序时,这些 DMA 缓冲区和修补程序位置列表可供转换。 每次调用 pfnRenderCb 后,用户模式显示驱动程序将收到可用于以下转换 (即对 pfnRenderCb 的以下调用) 的 DMA 缓冲区和修补程序位置列表的大小。
视频内存管理器保证在下一次转换完成之前不会剪裁该设备的 DMA 缓冲区和修补程序位置列表。 显示微型端口驱动程序必须能够将一个命令缓冲区转换为恰好一个 DMA 缓冲区和一个修补程序位置列表。 如果无法进行此转换,则根据定义,用户模式命令缓冲区无效。 显示微型端口驱动程序无法返回状态,指示转换期间它已超过 DMA 缓冲区空间和修补程序位置列表;这样做会导致视频内存管理器错误检查系统,因为内存管理器无法满足保证的 DMA 协定的要求。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈