李sir_Blog

博客园 首页 联系 订阅 管理

最近,由于需求推动,自己得开始学一下在windows下如何开发驱动程序。  虽然,后来由于其他的原因使得学习没继续下去,但是我还是把一些粗略的学习经历与体会写在这里,方便自己日后卷土重来,也方便其他的对windows开发一窍不通的有志之士参考一下。

(一)开发的目的

我为什么要学这些知识呢? 原因是想弄远程的硬件控制,用一个简单的例子来说明就是做个软件能使得:我用自己的机子播放音频文件的时候,可在别人的机子上发出声音。一开始的方案是把整个软件划分成3部分:控制端部分、网络部分、受控端部分。 在控制端部分,自己是希望能做成类似total recorder里面的虚拟声卡,播放软件把数据包发给驱动程序后,驱动程序不是把数据发向底层的硬件,而是将其转发到其他的机子上的受控部分,然后放出音乐。

(二)开发的历程
  (1)学习的历程
    要开发出这样的控制端部分,首先得弄清我能否弄成呢? 由于网上有很多关于total recorder的虚拟声卡的介绍,所以我认定技术上是可行的(至于是否够时间学习看了再想),后来在:
    驱动是否都要用DDK写   --- http://www.china-askpro.com/msg39/qa63.shtml
    打开”金笼子”VXD技术漫谈  ---http://www.chinaitpower.com/A/2004-11-14/159414.html
    开发WDM型USB设备驱动程序 ---http://tech.sina.com.cn/s/2004-10-14/1034440545.shtml
    等网页上开始了解到在windows下开发驱动程序的总体概况,并选定WDM技术作为实现手段。
        例如系统究竟要发什么样的irp包给声卡驱动程序,怎用这些数据。把数据直接传到受控端后,要把它们组织起来吗?如不组织,又如何根据这些irp包调用声卡呢? 而最重要的是,现在整个软件中我最想实验的是网络部分,另外还必须得赶时间完成这软件。所以最后还是决定,把这个虚拟声卡的驱动程序取消掉,日后再说了。

    (2)。。。以后若继续就写啦


————————————————————————————————————
一下列出一些网上资源:
(1)MSDN上WDM开发文档---
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/Intro_g/hh/Intro_g/legal_b698595e-ab17-44c3-bbb3-f795d7a147c7.xml.asp
(2)codeproject上很详细的介绍如何做一个驱动程序---http://www.codeproject.com/system/driverdev.asp
(3)一个在codeproject上获较高评价的源码---http://www.codeproject.com/system/WDM_Driver_development.asp
(4)国外的一个资源网,很多资源下载---
http://www.intelligentedu.com/newsletter46.html

另外一个是,在找相应的开发软件DDK(windows的Driver Develop Kit)网上很难找到:
http://www.yanping.net/
还有声称支持VC++6的windowsSDK 2003在www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

posted on 2011-01-13 18:36  李sir  阅读(1187)  评论(0编辑  收藏  举报