驱动开发(下)#优质内容_第1页
驱动开发(下)#优质内容_第2页
驱动开发(下)#优质内容_第3页
驱动开发(下)#优质内容_第4页
驱动开发(下)#优质内容_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、如何编写Windows98/2000驱动程序,(下图),双赢,1,时尚课件,4。使用Driver Works,1)创建简单的框架,2,精美的课件,工程文件名,工程文件目录,3,精美的课件,选择驱动程序类型,4,精美的课件,创建功能驱动程序,创建过滤器驱动程序,5,精美的课件精制课件,13,精制课件,14,精制课件,用于测试的应用程序名称,15,精制课件,16,精制课件,17,精制课件,驱动程序类,设备类,18,精制课件,驱动程序类文件,20,由类sample: public kdriver/驱动程序类组成的精美课件,初始化驱动程序SAFE_DESTRUCTORS public: /以下成员函数

2、注意与WDM中相关例程相关联的虚拟ntstatusvirtual nt status add device(p device _ object PDO);void loadregistrysparameters(kregistry key,21,时尚课件,class sample KD vice : public kpnp device/支持WDM环境中的即插即用设备Sample device (p device _ objectpdo,ulong unit); sample device();/Member Functions注意和PNP的子功能代码与public : dev Member

3、_ dispatchers virtual nt status on start device(kirp I)相关联。Virtual ntstatus onstop设备(kirp I);virtual nt status onremovedeeve(kirp I);virtual nt status default PNP(kirp I);virtual nt status default power(kirp I);virtual nt status ondevicepowerup(kirp I);virtual nt status ondevice sleep(kirp I);void s

4、erial read(KIrp I);void serial write(KIrp I);22,时尚课件,nt status sample _ ioctl _ read _ handler(kirp I);nt status sample _ ioctl _ write _ handler(kirp I);nt status sample _ ioctl _ read write _ handler(kirp I);# if def _ comment _ only virtual nt status create(kirp I);virtual nt status Close(KIrp I)

5、;Virtual ntstatus设备控制(kirp I);虚拟ntstatus系统控制(kirp I);virtual nt status Read(KIrp I);virtual nt status Write(KIrp I);# endif/member data protected :/unit number for this device(0-9)ulong m _ unit;KPnpLowerDevice m _ Lowersamplevice _ drivesanagedqueue m _ drivesanagedqueue;/todo : create additional d

6、river managed queues . these might be/of the same class(sample device _ driverrmanagedqueues);23,描述了干练的课件、驱动程序工程首先编译,然后在VC集成环境中编译、运行和调试此驱动程序。24,精制课件,25,精制课件,编译测试应用程序工程,26,精制课件,27,精制课件,驱动程序加载和调试信息确认用DriverStudio,如下。监控驱动程序,实时查看驱动程序发出的调试输出语句,驱动程序加载程序,可以动态调用驱动程序,28,精美的课件,驱动程序监视器界面,29,精美的课件,驱动程序加载程序界面,30

7、,精美的课件,31,精美的课件,32需要使用Read和Write方法从驱动程序单独读取字符,向驱动程序写入字符等添加。使用IO控制代码方法从驱动程序单独读取字符,并将字符写入驱动程序。使用IO控制代码将字符串写入驱动程序,从驱动程序读取该字符串,然后返回反馈字符串信息。,注意:程序中以暗红色显示的部分是我们添加或修改的语句,其他部分由DriverWorks自动生成。语句中的“txxxxx“这些语句是将信息输出到DriverMonitor或其他调试监视器中查看的调试软件中。2)完成应用程序和驱动程序之间的信息交换,37,时尚课件,使用Read和Write分别读写sample device . CPP void sample device 336363603360串行read (kirp I) tNTSTATUS status=STATUS _ SUCCESSpuchar p buffer=(puchar)I . buffered readest();/获取指向返回数据B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论