网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
USB开发步骤之软件篇
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
,我们在前面已经知道Device对象名称对WIN32用户模式 是不可见的,是不能直接通过API来访问的,WIN 32 API只能访问NT 逻辑设备名称。我们可以通过修改注册表来建立这两种名称之间的符 号连接。运行REGEDT32.EXE在\HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\Control\ Session Manager\ DOS Devices下建立起符号连接(这种符号连接也可以在驱动程序里调用函数 IoCreateSymbolicLink来创建)。
重新启动系统。
编写一个简单的测试程序调用WIN32API CreateFile函数以刚才你命名的NT逻辑设备名打开这个设备。如果打开成功,那么你也就成功地写出了一个最简单的驱动程序了。
支持更多的设备I/O请求
例如你的驱动程序可能需要对IRP_MJ_READ请求做出响应(完成后可用WIN32 API ReadFile函数进行测试)。如果你的驱动程序需要能够手工卸载,那么还必须对IRP_MJ_CLOSE做出响应。为你所需要处理IRP_MJ_XXX写好处理例程,并在DriverEntry里面初始化好这些例 程入口。
一个低层的驱动程序可能需要最起码一个StartIo,ISR和DpcForIsr 例程,可能需要一个SynchCritSection例程,如果设备使用了DMA, 那么可能还需要一个AdapterControl例程。关于这些例程,请参考 DDK相应文档。
对于高层驱动程序可能需要一个或多个IoCompletion例程,最起码 完成检查I/O状态块然后调用IoCompleteRequest的工作。 如果需要,还要对Device Extension数据结构和内容做些修改。

驱动程序的书写过程的确是很烦人的,从你开始理解结构开始,你就像掉在一个泥潭里一样,无论你如何出拳,发觉总是稀泥一堆。即使你是计算机高手,可以写三千行源代码没犯一个错,一次写完,一次就编译通过(我的一个“同事”在面试的时候对我们老板说的,我想他说的对,他没犯一个错,而是犯了三十万零一个半错,不过,由不的你不信,俺朋友老板就信世间有这类高手,并供为上宾),你还得了解一些基础的硬件知识,你还要了解你的驱动程序的设备的种类,设备的硬件结构,一些特殊的寄存器,或许一些更基础的汇编程序你也的去跑一遍。还的去看什么微微有点软出的什么鸟DDK(这玩意是最重要的),我看像敌敌畏(啊啊,给我一杯敌敌畏,让我不用写程序..哈哈,我的水平直逼牛得滑了,好耍!好耍!)。然后你开始写了一大堆你自认为不比“葵花宝典”差的驱动程序,嘿嘿,你发觉整个程序就是编译不过去,就好像你花十块零五毛RMB买了本“葵花宝典”,终于下定决心按照书的首页要求的引刀什么的,可是你发觉费了九马二骡之力引完了刀,神功依旧未成,点解!你又得去学什么程序调试,去Debug,俺们称其为捉虫,NN的,TMD,虫没有捉到,脑袋可肿的大大的。什么SOFTICE,WINDBG之类,尽是一些系统杀手的角色,一不小心改错了一个内存地址,哼,我CRASH你的机器,你只好又装机,又调试,又死翘翘,你不见密西西比河不死心,又重来一遍,如此三番,惹得你无名火起,起身饮茶,又见隔壁部门的老板正和小蜜在讨论周末去哪里加班工作,不由的气不打一处出,大吼一声“呔,来将何人!洒家张翼德在此!”.哎,人在老板下,哪能不干活,只有硬头再上.无数次的失败,无数次的徒劳之后,终于让你的机器跑的欢极了,你不由的小哼一句“对面的小蜜看过来,这里的男孩很能干!”
驱动程序真的得看个人造化,若你有张无忌般奇遇,有韦小宝般艳福,有段舆般韧劲,(对了,还要有东方不败般的勇气)还有什么做不了的。哈哈!

  • 上一篇资讯: VC++实现换肤功能窗口
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号