电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

通过设备接口打开设备 详细步骤(XXXX329)VIP免费

通过设备接口打开设备 详细步骤(XXXX329)_第1页
通过设备接口打开设备 详细步骤(XXXX329)_第2页
通过设备接口打开设备 详细步骤(XXXX329)_第3页
通过设备接口打开设备详细步骤一、驱动程序1.驱动程序框架的创建(1)用VC建立一个新工程。在VCIDE环境中选择File|New,弹出New对话框。在对话框中,选择Project选项卡。在Project选项卡中,选择Win32Application。设置工程名为OpenGuid.如图1所示,单击OK,进入下一个对话框,在对话框中选择一个空的工程。如图2。图1图2(2).新建两个文件GuidOpen.h和GuidOpen.cpp.这两个文件的具体写法,详见程序编写。也可以直接添加现成的已经写好的文件,张帆这本书中,一般都是用的HelloWDM.h和HelloWDM.cpp.(3).增加新的编译版本,去掉Debug和Release版本。在Build|Configuration如图3和图4。图3图4(4).修改工程属性。选择Project|Setting,在弹出的对话框中,选择General选项卡,将Intermediatefiles和Outputfiles改为MyDriver_Check,这个名字英语C/C++中,所设置的Fo和Fd后面的文件名相一致。如图5。图5将C/C++选项卡中,原有的ProjectOptions内容全部删掉,换成一下内容。/nologo/Gz/MLd/W3/WX/Z7/Od/DWIN32=100/D_X86_=1/DWINVER=0x500/DDBG=1/Fo"MyDriver_Check/"/Fd"MyDriver_Check/"/FD/c其中:/nologo:表示不显示编译的版本信息/Gz:默认函数调用采用标准调用(_stdcall)/MLd/W3:采用第三级警告模式/WX:将警告信息转换为错误信息,最大程度保证代码可靠/Z7:用Z7模式产生调试信息?/Od:关闭调试模式,VC的调试命令不能调试内核下的程序/DWIN32=100/D_X86_=1/DWINVER=0x500/DDBG=1:定义4个宏(不知道为什么)/Fo"MyDriver_Check/:MyDriver_Check/为OutputDirectories中“创建”的文件夹,存放中间生成的目标代码路径/Fd"MyDriver_Check/":MyDriver_Check/为存放.PDB文件的文件夹/FD:生成文件依奈/c:只进行编译,不连接图6选择Link选项卡,将原有的ProjectOptions内容全部删除,替换成如下内容:wdm.lib/nologo/base:"0x10000"/stack:0x400000,0x1000/entry:"DriverEntry"/subsystem:console/incremental:no/pdb:"MyDriver_Check/GuidOpen.pdb"/debug/machine:I386/nodefaultlib/out:"MyDriver_Check/GuiOpen.sys"/pdbtype:sept/subsystem:native/driver/SECTION:INIT,D/IGNORE:4078其中:wdm.lib:链接WDM库/nologo:链接时不显示版本信息/base:"0x10000":加载驱动时,设定加载到虚拟内存的地址/stack:0x400000,0x1000:设定函数使用堆栈的地址与大小/entry:"DriverEntry":入口函数的地址(为符合标准函数调用的)/subsystem:console:设置子系统/incremental:no:非递曾式链接/pdb:"MyDriver_Check/GuidOpen.pdb":设置pdb文件的文件名为GuidOpen,保存于MyDriver_Check文件夹下面C/C++属性页中的设置一样。/debug:以Debug方式链接/machine:I386:产生代码为386兼容的平台下的/nodefaultlib:不使用默认的库/out:"MyDriver_Check/GuidOpen.sys":输出2进制的代码的文件名,保存于MyDriver_Check文件夹下与C/C++属性页中的设置一样。/pdbtype:sept:设置pdb文件的类型/subsystem:native:子系统为内核系统/driver:编译驱动/SECTION:INIT,D:将INIT的段设置为可抛弃的/IGNORE:4078:忽略4078号警告错误图7(5).修改VC的lib目录和include目录。Tools->Options->Directories属性页下的Showdirectoriesfor切换到Includefie添加DDK的头文件(安装的ddk的目录文件夹)\Inc\w2k(ddk的目录文件夹)\Inc\ddk\wdm\w2k置于最上面添加库文件(安装的ddk的目录文件夹)\lib\w2k\i386置于最上面2.驱动程序说明(1)重要驱动程序中重要的数据结构驱动对象(DRIVER_OBJECT)在驱动加载时被内核中的对象管理程序所创建,由内核中的I/O管理器负责加载。typedefstruct_DRIVER_OBJECT{CSHORTType;CSHORTSize;PDEVICE_OBJECTDeviceObject;ULONGFlags;PVOIDDriverStart;ULONGDriverSize;PVOIDDriverSection;PDRIVER_EXTENSIONDriverExtension;UNICODE_STRINGDriverName;PUNICODE_STRINGHardwareDatabase;PFAST_IO_DISPATCHFastIoDispatch;PDRIVER_INITIALIZEDriverInit;PDRIVER_STARTIODriverStartIo;PDRIVER_UNLOADDriverUnload;PDRIVER_DISPATCHMajorFunction[IRP_MJ_MAXIMUM_FUNCTION+...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部