usb驱动程序的编写采用wdm驱动程序.docVIP

  • 5
  • 0
  • 约4.82千字
  • 约 9页
  • 2020-11-03 发布于广东
  • 举报
USB驱动程序的编写采用 WDM驱动程序。WDM驱动程序是一些例程的集合, 它们被动地存在,等待主机系 统软件( PnP 管理器、 I/O 管理器、电源管理器等)来调用或激活它们。具体驱动程序不同,其所包含 的例程也不同。一个 WDM驱动程序的基本组成包括以下 5 个例程: 驱动程序入口例程:处理驱动程序的初始化。 即插即用例程:处理 PnP 设备的添加、删除和停止。 分发例程:处理用户应用程序发出的各种 I/O 请求。 电源管理例程:处理电源管理请求。 )卸载例程:处理驱动程序的卸载。包含文件: , , , , , makefile,sources) 在文件中,包含了上述五个例程: 中定义了各种数据结构还有各种 IOCTL控制码,用于不同数据的读写。 中实现了各种驱动例程。包含了上述五个所说例程外还包含了其他例程,课程从下面的驱动 程序入口例程得出一些信息。 驱动程序入口例程: NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath ) { NTSTATUS ntStatus = STATUS_SUCCESS; PDEVICE_OBJECT deviceObject = NULL; DriverObject-MajorFunction[IRP_MJ_CREATE] = Ezusb_Create; DriverObject-MajorFunction[IRP_MJ_CLOSE] = Ezusb_Close; ources. If you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the WindowsNTDDK# !INCLUDE$(NTMAKEENV) 不要编辑这个文件。 事实上每个 WDM程序所需要的 makefile 的内容都是一样的,只需要简单地 copy 一个 makefile 到新的项目中就可以了 2、Sources TARGETNAME= TARGETTYPE=DRIVER DRIVERTYPE=WDM TARGETPATH=lib INCLUDES=$(BASEDIR)inc; $(BASEDIR)incddk; TARGETLIBS=$(BASEDIR)lib* SOURCES= \ 这个文件指定了驱动程序目标名是,是一个 WDM驱动程序,生成的文件存放在lib 目录 中。值得注意的是,“ =”前后不能有空格,否则编译的时候会出错。开始编译: “ 开 始 ”- “ 程 序 ”- “Development Kits ”- “Windows 2000 DDK” - “Checked Build Environment ” 屏幕将显示:(有“回车”的那行是需要读者你亲自打进去的) New or updated MSVCdetected. Updating DDK environment ?. Setting environment for using Microsoft Visual C++ tools. Starting dirs creation ?Completed. D:NTDDKcd jtag_usb (回车) D:HelloWDMbuild (回车) 如果源代码没有错误的话,生成的将存放在 lib 目录中。安装驱动程序: 利用 INF 文件实现驱动的安装。我们一般是采用 INF 文件, inf 文件如下所示: : [Version] Signature = $CHICAGO$ Class = USB DriverVer = 11/11/2007,1.00.00 ClassGUID = {36FC9E60-C465-11CF-40000} provider = %ECICT% [SourceDisksNames] 1=% CYUSB_INSTALL%,,, [SourceDisksFiles] = 1 [Manufacturer] %MfgName%=ECICT [Ecict] %VID_0547%=CyUsb, USB\VID_0547PID_1002 [DestinationDirs] = 10,System32\Drivers [] AddReg= [] CopyFiles= AddReg= [ AddReg= Addservice = CyUsb, 0 [] DisplayName = %%ServiceTyp

文档评论(0)

1亿VIP精品文档

相关文档