




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、US网区动程序的编写采用WDM区动程序。WDM区动程序是一些例程的集合,它们被动地存在,等待主机系统软件(PnP管理器、I/O管理器、电源管理器等)来调用或激活它们。具体驱动程序不同,其所包含的例程也不同。一个WDM动程序的基本组成包括以下5个例程:( 1)驱动程序入口例程:处理驱动程序的初始化。( 2)即插即用例程:处理PnP设备的添加、删除和停止。( 3)分发例程:处理用户应用程序发出的各种I/O请求。( 4)电源管理例程:处理电源管理请求。(5)卸载例程:处理驱动程序的卸载。包含文件:,makefile,sources)在文件中,包含了上述五个例程:中定义了各种数据结构还有各种IOCTL
2、控制码,用于不同数据的读写。中实现了各种驱动例程。包含了上述五个所说例程外还包含了其他例程,课程从下面的驱动程序入口例程得出一些信息。驱动程序入口例程:NTSTATUSDriverEntry(INPDRIVER_OBJECTDriverObject,INPUNICODE_STRINGRegistryPath)NTSTATUSntStatus=STATUS_SUCCESS;PDEVICE_OBJECTdeviceObject=NULL;DriverObject->MajorFunctionIRP_MJ_CREATE=Ezusb_Create;DriverObject->MajorFu
3、nctionIRP_MJ_CLOSE=Ezusb_Close;ources.Ifyouwanttoaddanewsource#filetothiscomponent.Thisfilemerelyindirectstotherealmakefile#thatissharedbyallthedrivercomponentsoftheWindowsNTDDK#!INCLUDE$(NTMAKEENV)不要编辑这个文件。事实上每个WDME序所需要的makefile的内容都是一样的,只需要简单地copy一个makefile到新的项目中就可以了2、SourcesTARGETNAME=TARGETTYPE=D
4、RIVERDRIVERTYPE=WDMTARGETPATH=libINCLUDES=$(BASEDIR)inc;$(BASEDIR)incddk;TARGETLIBS=$(BASEDIR)lib*SOURCES=这个文件指定了驱动程序目标名是,是一个WDM1动程序,生成的文件存放在lib目录中。值得注意的是,“=”前后不能有空格,否则编译的时候会出错。开始编译:“开始”->“程序”->“DevelopmentKits”->“Windows2000DDK”->“CheckedBuildEnvironment”屏幕将显示:(有“回车”的那行是需要读者你亲自打进去的)Newo
5、rupdatedMSVCdetected.UpdatingDDKenvironment。;SettingenvironmentforusingMicrosoftVisualC+tools.StartingdirscreationCompleted.D:NTDDK>cdjtag_usb(回车)D:HelloWDM>build(回车)如果源代码没有错误的话,生成的将存放在lib目录中。安装驱动程序:利用INF文件实现驱动的安装。我们一般是采用INF文件,inf文件如下所示:VersionSignature="$CHICAGO$"Class=USBDriverVer=
6、11/11/2007,1.00.00ClassGUID=36FC9E60-C465-11CF-40000provider=%ECICT%SourceDisksNames1=%CYUSB_INSTALL%,SourceDisksFiles=1Manufacturer%MfgName%=ECICTEcict%VID_0547&%=CyUsb,USBVID_0547&PID_1002DestinationDirs=10,System32DriversAddReg=CopyFiles=AddReg=AddReg=Addservice=CyUsb,0x00000002,DisplayNa
7、me=%ServiceType=1;SERVICE_KERNEL_DRIVSEtRartType=3;SERVICE_DEMAND_STARETrrorControl=1;SERVICE_ERROR_NORMALServiceBinary=%10%System32DriversLoadOrderGroup=BaseHKR,DevLoader,*ntkernHKR,NTMPDriver,;StringsCYUSB_INSTALL="YourDeviceInstallationDisk"ECICT="ECICT"MfgName="ECICT&quo
8、t; VID_0547&= "USB_Jtag Controler"ReplaceGUIDbelowwithcustomGUID"07BBF83D-D0B2-4915-870C-FC5B0B049DFC" 准备好这个文件后,插入控制器,然后跳出设备驱动安装的对话框。我想从列表选择硬件”->“其它设备”->“从磁盘安装”,选择所在的路径,然后安装。当安装完成后,系统就会添加上你写好的驱动程序了。(可以在“设备管理器”中查看到),这个驱动程序就投入使用。驱动程序与应用程序的接口对用户来说,所用的应用程序都通过I/O控制来
9、访问设备驱动程序。用户的应用程序首先通过调用Win32函数CreateFile()来取得访问设备驱动的句柄。然后,用户程序使用Win32函数DeviceIoControl()来提交I/O控制码,并为CreateFile函数返回的设备句柄设置I/O缓冲区。下面的例程验证所获取的EZ-USBS备的句柄:HANDLEDeviceHandle;DeviceHandle=CreateFile(“.ezusb-0”,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);随后,用户的应用程序通过调用Win32函数DeviceIoControl()
10、来向设备驱动程序发送请求。下面显示的是DeviceIoControl()函数的原型。EZ-US暇备驱动程序IOCTL使用相同的函数参数名。BOOLDeviceIoControl()HANDLEhDevice,/外设句柄DWORDdwIoControlCode,/I/O操作控制代码LPVOIDlpInBuffer,/输入缓冲区指针DWORDnInBufferSize,/输入缓冲区大小LPVOIDlpOutBufferSize,/输出缓冲区指针DWORDnOutBufferSize,/输出缓冲区大小LPDWORDlpBytesReturned,/实际返回的字节数LPOVRLAPPERlpOverL
11、apper/用于异步操作的重叠指针其中I/O操作控制代码是在USB设备驱动程序中定义和实施实际数据操作的,如在驱动程序中定义的:IOCTL_EZUSB_GET_DEVICE_DESCRIPTOR,IOCTL_EZUSB_BULK_READ,IOCTL_EZUSB_BULK_WRTE代码。例如:(1)通过红色标注的ioctl控制码写入一个地址值。/*VENDOR_OR_CLASS_REQUEST_CONTROLmyReqfeS施仪的数据结构ULONGnBytes;WORDpvBuffer1;/tempfordataandaddresspvBuffer0=Addr;/地址/写地址=0x00;/0-
12、HOSTT0DEVICE,1-DEVICETOHOST=2;/1-class,2-vendor=0;/0-device,1-interface,2-endpoint,3-other=0xb4;=0x00;/在这里不起作用=0x00;DeviceIoControl(hDevice,IOCTL_EZUSB_VENDOR_OR_CLASS_REQUEST,/他制码&myRequest,sizeof(VENDOR_OR_CLASS_REQUEST_CONTROL),pvBuffer,2,&nBytes,NULL);*/2)大块数据的写/*BULK_TRANSFER_CONTROLbulkControl;/pipetypeselectedPWORDpData=0;/通道0用于写,通道1用于读。pData=(PWORD)malloc(lenth*2);DeviceIoControl(hDevice,IOCTL_EZUSB_BULK_WRITE,数据块的写IOCTL码&bulkControl,sizeof(BULK_TRANSFER_CONTROL),pData,length*2,&nBytes,NULL);*/(2)大块数据的读/*BULK_TRANSFER_CONTROLbulkControl;/pipetyp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 庆阳市七下考试题及答案
- 湖北成考试题及答案本科
- 2025集团法务招聘考试真题及答案
- 2025化学教师考试真题及答案
- 难点解析人教版八年级上册物理光现象《光的直线传播》同步练习试卷(解析版含答案)
- 徐州二中考试题目及答案
- 2025年消防执业资格考试题库(消防应急救援装备)基础理论试题及答案
- 品牌维权技术路径-洞察与解读
- 技术驱动并购策略-洞察与解读
- 2025年《劳动关系协调员》考试复习题及参考答案
- 代账公司质量管理制度
- 呼吸机相关肺炎防控与管理要点
- 半导体公司内部管理制度
- 护理事业十五五发展规划(2026-2030)
- 2025循环流化床锅炉水冷壁防磨格栅安装及检验规程
- 自来水安装施工合同4篇
- 输血常识试题及答案
- 省级职业技能大赛2024(高职组)口腔修复工艺赛项规程
- 《系统性红斑狼疮肾炎》课件
- 《思想道德与法治》课件-第三章 继承优良传统 弘扬中国精神
- 白象食品测试题及答案
评论
0/150
提交评论