WDDM 与XDDM开发的区别

和XDDM驱动开发一样,在新的WDDM驱动模型架构下,需要编写与之适配的Mini小端口驱动。

和XDDM驱动不一致的是,WDDM的显示驱动运行于应用层,并且其不使用GDI引擎,而是使用的是Direct3D 运行时库和DirectX图形内核子系统(Dxgkrnl.sys).

WDDM与XDDM开发的区别主要开发区别表现在以下几个方面:

  • DriverEntry函数中初始化的不同。WDDM中使用DRIVER_INITIALIZATION_DATA结构体初始化 DxgkInitialize 函数。。

    XDDM使用VIDEO_HW_INITIALIZATION_DATA结构体初始化VideoPortInitialize函数。

  • mini小端口驱动程序通动态加载合适的DirectX图形内核子系统(Dxgkrnl.sys)。mini小端口驱动程序和DirectX图形内核子系统(Dxgkrnl.sys)通过接口相互调用。

  • 在XDMM中,mini小端口驱动程序不再处理大多数的IOCTL请求,而在WDDM中,用户模式的显示驱动通过DirectX运行时库与DirectX图形内核子系统(Dxgkrnl.sys)通讯,而WDDM图形内核子系统又与显示微型端口驱动程序通信。

    注意 以下IOCTL仍然在WDDM中使用,并且display miniport驱动程序必须处理它们:IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS

  • 用户模式显示驱动程序必须实现并导出OpenAdapter函数,该函数将打开图形适配器的实例。用户模式显示驱动程序还必须实现CreateDevice函数,该函数创建处理呈现状态集合的显示设备的表示形式。

  • 用户模式显示驱动程序的CreateResource函数以及显示微型端口驱动程序的dxgkdicreateallocation函数将取代XDDM中的DdCanCreateSurface、DdCreateSurface和D3dCreateSurfaceEx函数。

  • 剩余的用户模式显示驱动程序函数实现了与XDDM的内核模式显示驱动程序相同的功能

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!