第十七篇:实例分析(1)–初探WDDM驱动学习笔记(八)

第十七篇:实例分析(1)–初探WDDM驱动学习笔记(八)

大家好,又见面了,我是全栈君。

第四篇(VidPN)中提到过MIRROR驱动.

在进入本篇的实际内容前, 带着好奇心, 想请教CSDN中的显卡驱动方面的大虾, 怎样才干把这个驱动玩起来, 这个驱动的作用是什么,等等, 敬请不吝赐教.

显卡的公司眼下有两家, A与N(嵌入式方面的, 听到过一些, 比方ARM的MALI, 不太清楚). 不论什么一家半导体公司, 其主要内容还是硬件的设计, 软件层面上来讲, 就可大可小了, 但不可否认, 半导体公司对软件的需求与要求, 也越来越多, 越来越高.

近期几天我对显卡以及相关方面的了解, 上层的应用程序, OpenGL, DirectX, 再到用户模式下的UMD, 与内核层的KMD miniport driver, 不论什么一个方面,都是显卡, 显示应用的一个慷慨向, 要深入不论什么一个方面,都须要时间与精力及努力.

前面7篇都是一些基础的知识, 也是我在曾经写AVSTREAM/BDA过程中,没有遇到过的, 特别是VidPN的概念.

光看文档, 是不可能有长进的, 做实际的项目, 带着问题去看文档, 看代码, 调试, 打印, … 一系列的实践才干把别人的东西消化为自己的东西,  才干渐渐地理解深入, 最后, 提出自己的意见与观点, 提出改进的方法.

这次, 我带着一个实际问题在网上搜显卡驱动的Windows驱动样例代码.

Mirror没有搞明确, 后来, 找到了

Kernel mode display-only miniport driver (KMDOD) sample

http://code.msdn.microsoft.com/Kernel-mode-display-only-49adea58

从微软对这个样例的描写叙述来讲, 这个驱动实现了一个display-only 显卡驱动.

我的一贯作风, 就是先拿这个驱动的.sys文件, 在实际的系统上试一下,看看究竟有什么作用, 效果, 然后再伴随着实际须要解决的问题,去看代码,改代码.

从2006年開始Windows驱动编程, 那时候很easy,安装了DDK, WDK, 就能对代码进行编译, 如今不行了, 非得VS与WDK才干编译驱动程序了(当初为了在USB驱动中增加bulk stream的支持,也是这样, 下VS, 下WDK, 搞得很累, 主要原因,就是WDK不再带有编译, 链接的工具链了).

没办法, 仅仅能下一个免费的vs express 2013, 一个WDK 8.1 Update. 对样例编译出.sys, .inf, .cat.

令人头痛的是, 这个驱动仅仅能执行在 WDDM 1.2的环境下, 而我的WIN8 为

Win8 pro build 9200

在设备管理器中, 看到显卡安装的驱动为WDDM 1.1框架的: 例如以下:


intel(r) q45/q43 express chipse

依据代码的相关描写叙述, 在这个WIN8系统上, 我是不可能看到这个驱动的执行 情况了:

If the current display driver is not a WDDM 1.2 compliant driver, the sample driver might fail to install, with error code 43 displayed. The KMDOD driver is actually installed, but it cannot be started. The workaround for this issue is to switch to the Microsoft Basic Display Adapter Driver before installing the KMDOD sample driver, or simply to reboot your system after installing the KMDOD sample.

所以, 实践环境就此被实际原因给阻挡了.

大家有兴趣, 能够參考下这两篇内容, 我将在下一篇, 把代码分析呈现给大家:

http://www.yiiyee.cn/Blog/wddm1/

http://www.yiiyee.cn/Blog/wddm2/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116322.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用vagrant一键部署本地php开发环境(一)[通俗易懂]

    使用vagrant一键部署本地php开发环境(一)

    2022年2月8日
    46
  • 常见视频编码格式解析[通俗易懂]

    常见视频编码格式解析[通俗易懂]常见视频编码格式解析常见视频编码格式解析1.MPEG2-TS编码技术1.1.MPEG-TS简介1.2.基本概念及TS流概述1.3.基本流程1.4.TS流传输包(简称TS包)结构分析1.4.1.TS包包头1.4.2.TS包净荷部分1.5.PS节目流2.MPEG-4编码技术2.1.MPEG-4概述2.2.MPEG-4各部分2.3.MPEG-4层次结构3.H…

    2025年12月7日
    4
  • 如何让用html制作404页面,网站404页面怎么做?

    如何让用html制作404页面,网站404页面怎么做?原标题:网站404页面怎么做?404页面具体怎么做:首先,你可以简单的做一个html页面,把它命名为:404.html页面;如果不会制作,最简单的办法就是找任何一个比较有名的网站,把它的404页面另存为下来,然后修改上面的文字,以及URL为自己的文字信息,再保存好上传到你网站的根目录就行了。404页面的注意点:我们做404页面不能让它直接跳转到首页,不然,首页有可能会遭到被K。怎样让错误页面跳转到…

    2022年7月27日
    9
  • 集合和数组的相互转换

    集合和数组的相互转换集合和数组相互转换很多时候API的方法只支持集合或数组,比如适配器类中的数据只支持集合,这时候我们就要把数组转换集合。

    2022年6月16日
    28
  • vmware linux安装教程_vmware10虚拟机安装教程

    vmware linux安装教程_vmware10虚拟机安装教程一、安装VMware下载地址(16pro):https://www.aliyundrive.com/s/FSktJJXsfa8安装:选一下安装地址,一直下一步即可。(可能会要求重启电脑,重启即可)二、安装Linux下载地址:CentOS-7.5提取码:486k接下来看图操作2.1新建虚拟机现在我们就相当于买电脑,先把电脑配置整好。什么cpu啊内存条啊硬盘啊什么乱七八糟的,先不着急装系统。这里看你装什么版本的Linux了,我装的是GenOS7.564位所以选的是Ge

    2022年10月8日
    3
  • 机器学习中正则化项L1和L2的直观理解

    机器学习中正则化项L1和L2的直观理解正则化(Regularization)机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1\ell_1-norm和ℓ2ℓ2\ell_2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做…

    2022年7月13日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号