当前位置: 首页> 游戏> 手游 > 上海网络网站建设_一般通过血液传染的病有哪些_全网营销推广公司_软文营销文章300字

上海网络网站建设_一般通过血液传染的病有哪些_全网营销推广公司_软文营销文章300字

时间:2025/7/13 2:30:45来源:https://blog.csdn.net/m0_72813396/article/details/146113993 浏览次数:1次
上海网络网站建设_一般通过血液传染的病有哪些_全网营销推广公司_软文营销文章300字

概述

在某些情况下,引入了基于 WDDM 或 MCDM 的新计算设备,并且这些设备的驱动程序不支持 D3D 运行时。 为了帮助验证此类驱动程序,将功能添加到 Dxgkrnl ,以便仅使用内核模式 thunk 进行验证;也就是说,无需涉及 D3D 运行时和用户模式驱动程序(UMD)。

此基础结构还允许使用精确设置测试 WDDM 功能,而无需通过 D3D 运行时或 UMD,这可能会使事情复杂化。

引入了 DDI,以便在给定的一组命令的内核模式下生成命令缓冲区。 命令很简单,因此几乎任何执行节点都应能够使用预编译着色器或其他方式执行它们。

若要支持此功能,内核模式驱动程序(KMD)必须提供以下支持:

  • 报告已启用DXGK_FEATURE_KERNEL_MODE_TESTING功能。
  • 实现DXGKDDI_KERNELMODETESTINGINTERFACE功能接口。
  • 提供有关哪个执行节点支持生成和执行测试命令缓冲区的信息。
  • 支持创建没有专用驱动程序数据的上下文/硬件队列。 通常,需要专用驱动程序命令的格式才能将工作负荷提交到设备。 测试接口允许在没有专用驱动程序数据的情况下提交工作负荷。
  • 支持在支持该功能的任何节点上执行 pfnBuildTestCommandBuffer 生成的命令缓冲区。
  • 支持分页 DDI 中的 NULL 分配句柄(TRANSFER、FILL 等)。

此功能仅在计算机上启用测试签名时才使用。将开发使用此功能的 HLK 测试。

DDI 更改

更新了以下结构和枚举以支持内核模式测试:

  • DXGK_FEATURE_KERNEL_MODE_TESTING添加到DXGK_FEATURE_ID枚举。
  • SupportBuildTestCommandBuffer 已添加到 DXGK_NODEMETADATA_FLAGS 结构。
  • TestContext 将添加到 DXGK_CREATECONTEXTFLAGS 结构。
  • TestQueue 将添加到 D3DDDI_CREATEHWQUEUEFLAGS 结构。
  • 添加了以下 DDI、结构和枚举以支持内核模式测试:
  • 添加了DXGKDDI_KERNELMODETESTINGINTERFACE功能接口,DXGKDDI_BUILDTESTCOMMANDBUFFER::p fnBuildTestCommandBuffer 作为唯一的接口成员。
  • DXGKARG_BUILDTESTCOMMANDBUFFER
  • D3DDDI_BUILDTESTCOMMANDBUFFERFLAGS
  • D3DDDI_TESTCOMMANDBUFFER
  • D3DDDI_TESTCOMMANDBUFFEROP
  • D3DDDI_TESTCOMMANDBUFFER_COPY
  • D3DDDI_TESTCOMMANDBUFFER_FILL

 报告对内核模式测试功能的支持

OS 使用添加DXGK_FEATURE_KERNEL_MODE_TESTING功能 ID 调用 KMD 的 DxgkDdiQueryFeatureSupport 函数,以检查驱动程序是否支持内核模式测试。 KMD 需要报告支持该功能。

然后,系统将使用相同的功能 ID 调用 DxgkDdiQueryFeatureInterface,以获取 pfnBuildTestCommandBuffer 的接口函数指针。 KMD 必须实现此函数并为DXGKDDI_KERNELMODETESTINGINTERFACE接口提供其指针。

 报告支持内核模式测试的执行节点

 SupportBuildTestCommandBuffer 已添加到 DXGK_NODEMETADATA_FLAGS 结构。 KMD 必须设置此标志,以指示节点可以执行 pfnBuildTestCommandBuffer 生成的命令缓冲区。 建议尽可能多的节点支持该功能

创建没有专用数据的上下文 

TestContext 将添加到 DXGK_CREATECONTEXTFLAGS ,以指示上下文是测试上下文。 此标志仅在启用测试签名时才有效。

KMD 的 DxgkDdiCreateContext 应支持为支持执行 pfnBuildTestCommandBuffer 生成的命令缓冲区的每个节点创建上下文,而无需专用数据。 若要指示此支持,请在创建上下文期间在 Flags 中设置 TestContext 标志。

 在没有驱动程序专用数据的情况下创建硬件队列

TestQueue 已添加到 D3DDDI_CREATEHWQUEUEFLAGS ,以指示硬件队列是测试队列。 此标志仅在启用测试签名时才有效。

KMD 的 DxgkDdiCreateHwQueue 应支持在没有驱动程序专用数据的情况下创建硬件队列。

 生成命令缓冲区

KMD 的 pfnBuildTestCommandBuffer 为一组简单命令生成具有特定于设备的指令的命令缓冲区。 KMD 从 DxgkDdiQueryFeatureInterface 返回指向此函数的指针(DXGK_FEATURE_KERNEL_MODE_TESTING)。

单个测试命令提交到 pfnBuildTestCommandBuffer。 目前支持以下命令:

测试命令基于使用 GPU 虚拟地址。 OS 保证 GPU VA 映射到使用标准分配类型D3DKMT_STANDARDALLOCATIONTYPE_EXISTINGHEAP或D3DKMT_STANDARDALLOCATIONTYPE_INTERNALBACKINGSTORE创建的分配。

生成的命令缓冲区和专用数据将返回到用户模式。 提交命令缓冲区以供执行时,调用来自用户模式。 恶意应用程序可能会更改缓冲区的内容和专用数据。 KMD 负责验证命令缓冲区和专用驱动程序数据以避免 bug 检查。

生成的命令缓冲区不应包含特权指令。

用户模式客户端驱动程序(例如 Cuda)提交生成的命令缓冲区,以便使用 D3DKMTSubmitCommand 或 D3DKMTSubmitCommandToHwQueue 执行。 将来,缓冲区内容将作为用户模式提交的一部分提交。

提交生成的命令缓冲区以供执行时,可以保证命令缓冲区包含单个测试命令的设备指令。

生成的命令缓冲区提交到对应于传递给 pfnBuildTestCommandBuffer 的 hContext 的节点。

DMA 缓冲区(pDmaBuffer)的大小限制为 4 KB,DMA 专用驱动程序数据(pDmaBufferPrivateData)的大小限制为 1 KB。

关键字:上海网络网站建设_一般通过血液传染的病有哪些_全网营销推广公司_软文营销文章300字

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: