第二讲:我的第一个驱动

 配置好了开发环境之后,下面就要通过具体的程序来了解驱动的开发了。下面我们以一个WDM驱动的框架来实现Windows驱动程序的HelloWorld

作为一个驱动程序,首先应该写的是它的入口函数,这点跟MFCWinMain或者C++中的Main函数一样,驱动的入口函数使用DriverEntry。在入口函数中主要实现的功能是一些分发例程的注册以及其他的需要初始化的事务。

DriverEntry的原型是NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject,IN PUNICODE_STRING pRegistryPath),INOUT这只是一个宏,用来表示参数的输入输出类型,并无实质意义,也不占空间。pDriverObject是我们所要创建的驱动对象,pRegistryPath是驱动程序在注册表中的地址。至于它们的类型,PDRIVER_OBJECT是驱动开发中一个重要的数据结构,这是驱动对象,具体的我们以后再讨论,而PUNICODE_STRING则是一个宽字符的指针,在内核开发中,一般使用的字符串都是宽字符,即Unicode string。  下面是一个范例:

 

完成了入口函数之后,接下来就要实现上面注册的分发例程的功能函数了。作为一个WDM驱动程序,首先需要创建设备对象,这个任务就交给AddDevice例程,通过上面的注册,实现部分放在MyDeviceAdd。

 

生成了设备对象之后,接下来就要处理发向设备的各种请求了。这里就用一个通用的处理例程来示范一下。其实这个处理函数只是将这些请求转交给真实的设备而已,没有实际的功能。

 

这样,一个驱动的主要部分就完成了。接下来完成一些细碎的工作,编译一下,一个驱动就出现了。

头文件

 

新建一个文本文件,内容如下:

 

重命名文件,改为Makefile,后缀没有。然后重新建立一个文本文件,写入如下内容:

 

保存,更改文件名为Sources,后缀没有,这样进入DDK的编译环境,已编译,一个后缀为.sys的驱动文件就出现了。

好了,一个简单的驱动就诞生了。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 《Android底层开发技术实战详解:内核、移植和驱动(第2版)》是一本介绍Android底层开发技术的书籍,该书全面解了Android操作系统的内核、移植和驱动方面的知识。 首先,该书详细解析了Android底层开发中的内核技术。内核是操作系统的核心部分,负责管理硬件资源、进程调度、内存管理等功能。该书介绍了Android内核的架构和组成,深入解析了Android内核的关键技术,包括进程管理、内存管理、设备驱动等内容,读者可以通过学习这些知识来深入了解Android系统的内部工作原理。 其次,该书还详细解了Android系统的移植技术。移植是将一个操作系统或软件从一个平台移植到另一个平台的过程。Android系统可以在不同的硬件平台上运行,这需要进行相应的移植工作。该书介绍了Android系统的移植流程和方法,包括硬件支持、设备树、引导和启动流程等方面的内容,为读者提供了实践移植Android系统的指导。 最后,该书还详细介绍了Android系统中驱动的开发技术。驱动是将硬件与操作系统连接的桥梁,它负责驱动硬件设备,使之能够与操作系统进行交互。该书介绍了Android系统驱动的基本原理和开发方法,包括字符设备驱动、块设备驱动、网络设备驱动等方面的内容,读者可以通过学习这些知识来了解Android系统中驱动的实现原理和开发技巧。 《Android底层开发技术实战详解:内核、移植和驱动(第2版)》是一本深入探讨Android底层开发的专业书籍,读者通过学习这本书可以系统地了解Android底层开发的相关知识,为掌握Android系统的工作原理和进行底层开发提供了重要的参考。 ### 回答2: 《Android底层开发技术实战详解:内核、移植和驱动(第2版)》是一本专注于Android底层开发的技术实战指南。本书主要解了Android系统的内核、移植和驱动开发相关的知识和实践经验。 首先,本书深入介绍了Android内核的基本原理和开发技术。内核是Android系统的核心组件,涉及到系统的运行机制、进程管理、内存管理和设备驱动等重要模块。通过学习内核的原理和开发技术,读者可以更好地理解Android系统的运行机制和优化方法。 其次,本书详细解了Android系统的移植技术。移植是将Android系统适配到不同硬件平台上的过程,包括处理器架构、硬件接口、设备驱动和文件系统等方面的适配工作。通过学习本书的内容,读者可以全面了解Android系统的移植原理和实践步骤,提高系统适配的效率和成功率。 最后,本书还介绍了Android设备驱动程序的开发技术。设备驱动是Android系统与硬件设备之间的桥梁,负责控制和管理外设的访问。本书通过实际案例,解了Android设备驱动的编写和调试技巧,帮助读者掌握设备驱动开发的方法和技巧。 总之,本书通过深入浅出的方式,详细介绍了Android底层开发的核心知识和实战经验。无论是对于Android系统开发者还是对于对Android底层感兴趣的读者来说,本书都是一本不可多得的参考书籍,可帮助读者更好地理解和应用Android底层开发技术。 ### 回答3: 《Android底层开发技术实战详解:内核、移植和驱动(第2版)》是一本关于Android底层开发技术的实践指南。 这本书首先介绍了Android操作系统的基本架构和内核的相关知识,包括Linux内核和Android系统的关系,以及Android的启动过程和内核的工作原理。读者可以了解到Android系统是如何工作的,为之后的实践奠定了基础。 接下来,书中详细介绍了Android的移植过程。移植是将Android系统适配到不同硬件平台的过程,这本书将详细解如何进行移植工作,包括硬件支持、设备树和启动流程等内容。读者可以学习到如何将Android系统移植到特定的硬件平台上。 最后,书中还解了Android的驱动开发。驱动是连接硬件和操作系统的桥梁,本书将介绍Android系统中不同种类的驱动开发,包括字符设备驱动、块设备驱动和图形设备驱动等。读者可以学习到如何编写驱动程序来支持不同的硬件设备。 整本书的内容结构清晰,循序渐进地介绍了Android底层开发的关键技术。通过实践案例和详细的代码示例,读者可以更深入地理解和掌握Android底层开发的技术和方法。无论是对于想要从事Android底层开发的初学者,还是已经从事相关工作的开发者来说,这本书都是一本不可或缺的参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值