欢迎来到天天文库
浏览记录
ID:58784070
大小:802.50 KB
页数:57页
时间:2020-10-03
《接口驱动程序开发(下)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows98/2000驱动程序编写方法14.DriverWorks的使用1)生成简单框架2工程文件名工程文件目录3选择驱动类型4创建功能驱动程序创建过滤器驱动程序5选择相应总线本例不驱动硬件6驱动类名称驱动类文件名7选择需要处理的消息句柄891011添加和应用程序之间通信的控制代码121314测试用应用程序名称151617驱动类设备类18驱动类文件设备类文件测试用的控制台程序文件驱动安装指导文件19此时已经具备了一个驱动程序以及做测试用的应用程序的基本框架,我们可以在VC集成环境下区修改有关程序,增加相关的具体操作代码,然后就可以编译和调
2、试了。20该驱动程序框架包含了几个最基本的类,这些类是:classSample:publicKDriver//驱动程序类,用于初始化驱动程序{SAFE_DESTRUCTORSpublic://以下成员函数注意和WDM中有关例程联系起来看virtualNTSTATUSDriverEntry(PUNICODE_STRINGRegistryPath);virtualNTSTATUSAddDevice(PDEVICE_OBJECTPdo);voidLoadRegistryParameters(KRegistryKey&Params);intm_Unit
3、;//ThefollowingdatamembersareloadedfromtheregistryduringDriverEntryULONGm_bBreakOnEntry;};21classSampleDevice:publicKPnpDevice//是设备类KDvice的派生类,用于在WDM环境下支持即插即用设备{//Constructorspublic:SAFE_DESTRUCTORS;SampleDevice(PDEVICE_OBJECTPdo,ULONGUnit);~SampleDevice();//MemberFunctions注
4、意和PNP的次功能代码联系起来看public:DEVMEMBER_DISPATCHERSvirtualNTSTATUSOnStartDevice(KIrpI);virtualNTSTATUSOnStopDevice(KIrpI);virtualNTSTATUSOnRemoveDevice(KIrpI);virtualNTSTATUSDefaultPnp(KIrpI);virtualNTSTATUSDefaultPower(KIrpI);virtualNTSTATUSOnDevicePowerUp(KIrpI);virtualNTSTATUSOn
5、DeviceSleep(KIrpI);voidSerialRead(KIrpI);voidSerialWrite(KIrpI);22NTSTATUSSAMPLE_IOCTL_Read_Handler(KIrpI);NTSTATUSSAMPLE_IOCTL_Write_Handler(KIrpI);NTSTATUSSAMPLE_IOCTL_ReadWrite_Handler(KIrpI);#ifdef_COMMENT_ONLYvirtualNTSTATUSCreate(KIrpI);virtualNTSTATUSClose(KIrpI);virt
6、ualNTSTATUSDeviceControl(KIrpI);virtualNTSTATUSSystemControl(KIrpI);virtualNTSTATUSRead(KIrpI);virtualNTSTATUSWrite(KIrpI);#endif//MemberDataprotected://Unitnumberforthisdevice(0-9)ULONGm_Unit;KPnpLowerDevicem_Lower;SampleDevice_DriverManagedQueuem_DriverManagedQueue;//TODO
7、:Createadditionaldrivermanagedqueues.Thesemightbe//ofthesameclass(SampleDevice_DriverManagedQueue),//oryoumightchoosetoderiveanotherclass.};23先编译驱动程序工程在VC的集成环境中下面我们讲解编译、执行和调试这个驱动程序。2425再编译测试应用程序工程2627下面使用DriverStudio带的工具加载驱动程序和查看调试信息。驱动程序监视,可就看到驱动程序发出的调试输出语句驱动程序装载器,可动态调用驱动程序
8、28驱动程序监视器界面29驱动程序装载器界面30313233343536下面我们来修改有关代码,以便增加驱动程序和应用程序之间相互通信的内容。需要增加
此文档下载收益归作者所有