windows驱动编程学习顺序?
2010年11月19日
内核驱动编程并不是什么高深的知识,无非也是按照系统的API,框架去做代码罢了,只是这些东西,提供了更接近于底层的功能,在某些情况下对程序的构架更加有利效率更高而已。没有创新性的东西是无所谓难度不难度的,照葫芦画瓢而已。 从哪里学起,基本路线 语言-》算法-》框架机制&WINDOWS程序-》系统内核实现等。 下面说的一些内容都有一个共同的前提,就是不断的去写代码,调试代码,否则说什么也是白搭的。我曾经一个操作系统的老师的一句话是"看了书叫你做,做不出来就是没学懂" 第一个阶段:鉴于你现在已经提了一个方向了,那选择的语言自然是C和C++,两门都需要,现在WINDOWS内核是混合的,从这个角度来说也必须两门都熟悉。相关书籍,国内的可以买谭浩强的C和C++书,比较简短,适合上手,然后C++ PRIMER这种从C++的思想去讲解C++的书也可以翻一翻。然后为了C和C++的基础扎实一些,可以看例如EFFECTIVE C++/MORE EFFECTIVE C++/C语言陷阱等等类似的书,都是从语言的层面去解释一些经验和技巧,注意,这里的内容没有涉及一点点技术,只是最基本的语言基础。 为了方便后面的学习,这个阶段应该学习计算机的基础课程,数据结构,计算机网络,操作系统,数据库原理,组成原理等等,甚至包括一些高等数学,离散数学的基础。这个要视你的情况而定,非常重要,对进一步发展影响很大。 第二个阶段:WINDOWS程序,熟悉WINDOWS程序的实现机制,例如消息响应,事件处理这些都应该明白底层是如何实现的,而不只是知道一个概念而已。相关的包括WINDOWS SDK,MFC框架等,书籍有《WINDOWS程序设计》(微软那本1300页的书,虽然很厚,但这本无非是该领域的经典,当然国内的也有不少,但是都是写的比较浅显,很多地方一笔带过),《深入浅出MFC》《VC技术内幕》等,这些都是讲解MFC底层实现机制的书,比起教你如何去拖控件,更有实际价值。这个是讲解SOCKET的,其实这方面内容一般WINDOWS程序的书都有涉及,但是很多人还是不明白,为了熟悉一些,还是有必要看的。驱动程序,这个只是在WINDOWS的一个固定框架下去做,没什么大不了。 第三个阶段:内核相关。由于WINDOWS不开源,所以没有代码可以看,好的是现在又REACTOS这种仿WINDOWS的系统是开源的,可以看看代码的实现,熟悉操作系统是怎么运行的。这些东西很多涉及到了安全相关的机制,要靠自己去琢磨。 除此之外还应该明白编译器如何编译,链接器如何链接,操作系统如何加载文件,WINDOWS如何管理内存等等无数的相关知识,这些不会对你的程序造成直接价值,但是间接价值无限。在学习的过程中,应该明白一些基本的解决问题方法,设计模式什么的,这些东西才是真正的技术。我估计你要做点什么研究很困难了,不过上面这些也足够了。 现在很多人一学习就要系统的学,但是你也要明白这样的代价。前面进步很慢,学习周期很长,很难坚持下来。学到什么程度?学会了能够拿来用,做的出来说的出道理就可以继续后面的学习了,别要用了几年的NEW,还不知道NEW做了些什么。
发表评论
-
Windows Mobile 平台EDB 数据库的应用与开发
2012-01-20 09:30 754Windows Mobile 平台EDB 数据 ... -
PHP on Windows Azure 入门教学系列(3) ――在Windows Azure中部署Wordpress
2012-01-20 09:30 641PHP on Windows Azure 入门教学系列(3) ... -
Windows Azure 上的托管服务CDN
2012-01-20 09:30 552Windows Azure 上的托管服 ... -
Windows Azure(四-2):云端的文件系统(Blob Storage)
2012-01-20 09:30 687Windows Azure(四-2):云端的文件系统(Blob ... -
中国哲学史(先秦部分)-------简答
2012-01-19 14:32 766中国哲学史(先秦部分)-------简答 2012年01月0 ... -
夏商与西周》第四十二章之昭王伐楚(二)
2012-01-19 14:32 610夏商与西周》第四十二章之昭王伐楚(二) 2012年01月08 ... -
龄欣哔日志蹈诒刺陕疥赤
2012-01-19 14:32 703龄欣哔日志蹈诒刺陕疥赤 2012年01月09日 ... -
古玩辨伪之青铜器
2012-01-19 14:31 536古玩辨伪之青铜器 2012年01月09日 ... -
日本法定假日简介
2012-01-19 14:31 567日本法定假日简介 2012 ... -
【转】 AS3.0 中root和parent的用法
2012-01-17 04:19 732【转】 AS3.0 中root和parent的用法 2011 ... -
JavaScript之Global对象
2012-01-17 04:19 562JavaScript之Global对象 2011年08月24 ... -
JavaScript中的 try...catch和异常处理(转)
2012-01-17 04:19 622JavaScript中的 try...catch和异常处理(转 ... -
JavaScript的函数和异常处理
2012-01-17 04:19 622JavaScript的函数和异常处 ... -
JS的try..catch..finally
2012-01-17 04:19 693JS的try..catch..finally 2011年09 ... -
海洋随笔《三》
2012-01-16 03:08 587海洋随笔《三》 2011年12月07日 天再次进入黑暗, ... -
这文章看得我心里酸溜溜的,送给每一个爱老公的女人…
2012-01-16 03:08 767这文章看得我心里酸溜溜的,送给每一个爱老公的女人… 2011 ... -
《 つ 谢谢你勾引我老公1。文/唐丰有》
2012-01-16 03:08 656《 つ 谢谢你勾引我老公1。文/唐丰有》 20 ... -
最性感的地方
2012-01-16 03:08 618最性感的地方 2011年12 ... -
[耀湾/微亚细亚] 夜降り萃梦乡 FIN.
2012-01-16 03:08 753[耀湾/微亚细亚] 夜降り萃梦乡 FIN. 2009年02月 ...
相关推荐
总之,“Windows驱动编程视频教程-WDM驱动程序的基本结构”是一份宝贵的教育资源,它将带领学习者深入了解WDM驱动的工作原理,掌握驱动开发的基本技巧,从而有能力编写自己的WDM驱动程序,为硬件设备提供高效稳定的...
Windows编程本质上是消息驱动的,一个程序需要能够响应和处理各种消息。消息可以分为队列化消息和非队列化消息。非队列化消息不进入消息队列而是直接由窗口过程处理,例如WM_CREATE和WM_NCCREATE等。 #### 4. 窗口...
C++是一种强大的、通用的编程语言,被广泛应用于系统软件、应用软件、...这样的学习顺序既有助于理论与实践的结合,也能逐步提升你的编程技能和系统设计能力。在学习过程中,不断实践和解决实际问题将是提升的关键。
### 驱动编程学习资料:深入理解I/O系统与驱动对象 在计算机科学领域,尤其是操作系统和硬件交互层面,驱动编程是连接软件与硬件的关键技术。本文将基于提供的文件内容,深入解析I/O(输入/输出)系统、驱动对象...
总之,Windows编程基础涵盖了从理论到实践的多个方面,包括理解操作系统的特性和机制、掌握面向对象和事件驱动编程的技巧、熟悉窗口和句柄的使用、以及学会构建和管理进程。对于希望在Windows平台上开发软件的程序员...
在Windows驱动程序开发中,派遣函数(Dispatch Functions)扮演着至关重要的角色。这些函数是设备驱动的核心部分,...理解派遣函数的处理机制是Windows驱动编程的关键步骤,也是成为一名专业驱动开发人员的必备技能。
总的来说,Windows驱动开发涉及硬件交互、内核级编程和系统服务,需要理解Windows内核的工作机制以及如何使用适当的工具进行调试和测试。对于初学者,掌握驱动开发的基础知识,逐步了解并实践这些概念,是进入这一...
1. 理解事件驱动编程:Windows程序通常基于消息循环,理解如何处理和响应用户操作产生的消息至关重要。 2. 学习GDI(Graphics Device Interface)或DirectX:这两者是Windows下进行图形绘制和游戏开发的重要工具。 3...
在Windows驱动程序开发中,链表是...通过学习这个视频教程,开发者可以深入了解如何在Windows驱动程序中有效利用链表,提高驱动的效率和可靠性。实际项目中,熟练掌握链表的使用对于编写高效、健壮的驱动代码至关重要。
在Windows平台上进行网络编程,C++语言是一种常用的选择,因为它提供了强大的功能和高效...在实际开发中,还需要不断学习和实践,熟悉TCP/IP协议族,理解网络通信的原理,才能更好地利用C++进行高效的Windows网络编程。
在Windows编程中,事件驱动机制成为主导,这意味着程序的执行流程不再由固定的顺序控制,而是由用户的交互事件或者系统事件来驱动。 在DOS环境下,程序按照预定的顺序执行,程序员可以通过代码直接控制程序的每个...
《Microsoft Windows驱动程序模型设计》一书聚焦于Windows Driver Model(WDM),这是微软为Windows操作系统设计的一种驱动程序架构,广泛应用于各种硬件设备的驱动编写。WDM驱动程序模型是Windows系统中的核心部分...
总的来说,"Windows内核驱动EPROCESS遍历进程模块"是一项深入的操作系统级任务,它可以帮助我们更好地理解和监控系统运行状态,但同时也需要开发者具备高级的编程技能和对系统安全的深刻理解。通过学习和实践这一...
在Windows网络编程中,事件驱动模型是一种常见的编程模式。通过使用WSAAsyncSelect或WSAEventSelect,开发者可以设置网络事件(如数据到达或连接请求)的回调函数,从而实现非阻塞的网络I/O。这种模型提高了程序的...
Windows驱动开发技术是深入操作系统内核的编程领域,它涉及到硬件与软件的交互,是构建高效、稳定系统的关键。本书“Windows驱动开发技术详解”的源代码提供了实践驱动开发的宝贵资源,适合对底层编程感兴趣的开发者...
学习套接字编程,理解TCP/IP协议栈,以及如何在Windows平台上进行网络通信,都是开发者必备的技能。 最后,错误处理和调试技术也是必须掌握的。学会分析和解决运行时问题,使用调试工具如WinDbg,对提高代码质量和...
总的来说,Windows编程基础涵盖了操作系统原理、开发工具、应用程序特性以及事件驱动编程模型等多个方面,是构建高效、用户友好的Windows应用程序的基础。深入理解和掌握这些知识,对于任何希望在Windows平台上开发...
7. **事件驱动编程**:理解消息循环和消息映射机制,以及如何处理各种消息。 8. **文件操作**:利用MFC进行文件的读写,包括序列化技术。 **内核编程** 内核编程涉及到Windows操作系统的核心部分,后半部分的学习...
《Windows设备驱动程序设计课程详解》 在计算机操作系统中,设备驱动程序是连接硬件设备与操作系统...通过深入学习和实践,开发者将能够熟练地设计和调试Windows设备驱动程序,为硬件设备提供高效、稳定的软件支持。
13. **事件驱动编程**:Windows提供了消息队列和消息循环的概念,这对于编写响应式的网络应用程序至关重要。 14. **UDP编程**:除了TCP,网络编程也涉及无连接的UDP协议。UDP不保证数据顺序和可靠性,但具有更低的...