USB驱动程序的编写采用WDM 驱动程序.doc

USB驱动程序的编写采用WDM 驱动程序.doc

ID:57014638

大小:25.00 KB

页数:6页

时间:2020-07-30

USB驱动程序的编写采用WDM 驱动程序.doc_第1页
USB驱动程序的编写采用WDM 驱动程序.doc_第2页
USB驱动程序的编写采用WDM 驱动程序.doc_第3页
USB驱动程序的编写采用WDM 驱动程序.doc_第4页
USB驱动程序的编写采用WDM 驱动程序.doc_第5页
资源描述:

《USB驱动程序的编写采用WDM 驱动程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、USB驱动程序的编写采用WDM驱动程序。WDM驱动程序是一些例程的集合,它们被动地存在,等待主机系统软件(PnP管理器、I/O管理器、电源管理器等)来调用或激活它们。具体驱动程序不同,其所包含的例程也不同。一个WDM驱动程序的基本组成包括以下5个例程:  (1)驱动程序入口例程:处理驱动程序的初始化。  (2)即插即用例程:处理PnP设备的添加、删除和停止。  (3)分发例程:处理用户应用程序发出的各种I/O请求。  (4)电源管理例程:处理电源管理请求。(5)卸载例程:处理驱动程序的卸载。包含文件:ezusbsys.

2、c,ezusbsys.h,ezusbsys.rc,resource.h,version.h,makefile,sources)在ezusbsys.c文件中,包含了上述五个例程:ezusbsys.h中定义了各种数据结构还有各种IOCTL控制码,用于不同数据的读写。Ezusbsys.c中实现了各种驱动例程。包含了上述五个所说例程外还包含了其他例程,课程从下面的驱动程序入口例程得出一些信息。驱动程序入口例程:NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE

3、_STRINGRegistryPath){NTSTATUSntStatus=STATUS_SUCCESS;PDEVICE_OBJECTdeviceObject=NULL;DriverObject->MajorFunction[IRP_MJ_CREATE]=Ezusb_Create;DriverObject->MajorFunction[IRP_MJ_CLOSE]=Ezusb_Close;//分发例程DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=Ezusb_Proc

4、essIOCTL;//即插即用例程DriverObject->MajorFunction[IRP_MJ_PNP]=Ezusb_DispatchPnp;//电源管理例程DriverObject->MajorFunction[IRP_MJ_POWER]=Ezusb_DispatchPower;//设备添加例程DriverObject->DriverExtension->AddDevice=Ezusb_PnPAddDevice;//卸载例程DriverObject->DriverUnload=Ezusb_Unload;ret

5、urnntStatus;}在原有框架下,主要实现了的代码段在于ezusbsys.c文件中的如下例程:NTSTATUSEzusb_Read_Write(INPDEVICE_OBJECTfdo,INPIRPIrp)在该例程中实现对大数据块的读写控制和实现。具体实现代码在ezusbsys.c文件中。编译生成驱动文件:最用利用Windows2000DDK工具进行编译。编译WDM程序的时候,有两个文件是必须要有的,它们是:1、Makefile:它的内容是:##DONOTEDITTHISFILE!!!Edit.sources.If

6、youwanttoaddanewsource#filetothiscomponent.Thisfilemerelyindirectstotherealmakefile#thatissharedbyallthedrivercomponentsoftheWindowsNTDDK#!INCLUDE$(NTMAKEENV)makefile.def         不要编辑这个文件。事实上每个WDM程序所需要的makefile的内容都是一样的,只需要简单地copy一个makefile到新的项目中就可以了2、SourcesTARG

7、ETNAME=jtag_usb_1.0TARGETTYPE=DRIVERDRIVERTYPE=WDMTARGETPATH=libINCLUDES=$(BASEDIR)inc;$(BASEDIR)incddk;TARGETLIBS=$(BASEDIR)lib*freeusbd.libSOURCES=ezusbsys.cresource.r     这个文件指定了驱动程序目标名是jtag_usb_1.0.sys,是一个WDM驱动程序,生成的文件存放在lib目录中。值得注意的是,“=”前后不能有空格,否则编译的时候会出错。

8、开始编译:“开始”->“程序”->“DevelopmentKits”->“Windows2000DDK”->“CheckedBuildEnvironment”屏幕将显示:(有“回车”的那行是需要读者你亲自打进去的)NeworupdatedMSVCdetected.UpdatingDDKenvironment….Settingenv

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。