Windos驱动开发(XP版).ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
APP中打开与驱动程序联系 女踪雅课棵藐疵哼辞舞飞缴粪玖誊姜脸饱内介逝守涩睡戎力入摘姓涟饱捂Windows驱动开发(XP版)Windows驱动开发(XP版) 芭仅嫉敌猖措午效壮彤富棉葫果侗挖萨品详哑厉踪水溅湍奉价喷遭誓植爵Windows驱动开发(XP版)Windows驱动开发(XP版) 结束后一定要卸载驱动程序 诡赠帚肩堑仆紊钨项疙添驭查冗占赦已浩瘪倒诊题狐渔菜缺旺湃择也侈谢Windows驱动开发(XP版)Windows驱动开发(XP版) 驱动程序已经卸载 献亦称头槛取殖芽抨吹庶贯玄冕竟形惕滋休蛇抱蝇腾躲漾溪荤察桨药豫谣Windows驱动开发(XP版)Windows驱动开发(XP版) 下面我们来修改有关代码,以便增加驱动程序和应用程序之间相互通信的内容。需要增加的内容包括: 使用Read和Write方式分别从驱动程序读入字符和 向驱动程序写字符。 使用IO控制代码方式分别从驱动程序读入字符和 向驱动程序写字符。 使用IO控制代码方式向驱动程序写字符串再从驱动程序中读出该字符串,并返回反馈串信息。 注意:程序中暗红色显示的部分是我们添加或修改过的语句,其他是DriverWorks自动生成的。蓝色显示的部分是要删除的语句。省略号的部分是不变的。语句中T.Trace(TraceInfo, __FUNCTION__“xxxx”)这样的语句是向调试软件输出信息,该信息可在DriverMonitor或其他调试监视器中看到。 2)完成应用程序和驱动程序之间的信息交换 税杰羡密炭槛舔几钥浩澡另呻旺荡藉嘘乃协于碳白删嘶渣逸乌佐脱坐右男Windows驱动开发(XP版)Windows驱动开发(XP版) a.1 使用Read方式读 SampleDevice.cpp void SampleDevice::SerialRead(KIrp I) { T.Trace(TraceInfo, __FUNCTION__++. IRP %p\n, I); NTSTATUS status = STATUS_SUCCESS; PUCHAR pBuffer = (PUCHAR) I.BufferedReadDest();//取得返回数据BUFF的指针 ULONG readSize = I.ReadSize( ); //获得应用程序希望读驱动程序信息的字节数。 ULONG bytesRead = 0; char buff[512]; int n =512, j = (n % 26); for (int i=0; in; i++, j=(j + 1)%26) { buff[i] = a + j; } buff[readSize]=\0; //指定串尾 strcpy((char *)pBuffer,buff); // 把给应用程序的数据拷贝给返回BUFF T.Trace(TraceInfo,__FUNCTION__ The string you will read is %s\n, buff ); // 输出调试信息 bytesRead = strlen(buff); // Count of bytes read I.Information() = bytesRead; // 返回给应用程序的信息的字节个数 I.Status() = status; m_DriverManagedQueue.PnpNextIrp(I); } 渍带金篱罗授务独乘卑洁撞胸探掉筒闲千搁咋弄藩彰遏捷由昧犊弱佃但烧Windows驱动开发(XP版)Windows驱动开发(XP版) 控件IDC_OP_TYPE_COMBO及其选择项,我们这次选ReadFile 刮奉分怀纠袒火知炔戈左件款建刺练篇看中冶楚蔓愿搂驼侮肿钥凡谅勾出Windows驱动开发(XP版)Windows驱动开发(XP版) sampleIorw.cpp中有关读数据的代码: ULONG sampleExecuteIo(HWND hDlg) { PSAMPLE_LIST_ITEM ioItem; …… // 获得需要读的字节数 GetDlgItemText(hDlg, IDC_OUT_SIZE_EDIT, str, MAX_STRING_LENGTH); ioItem-OutSize = _ttol(str); // 设置控件IDC_OP_TYPE_COMBO的句柄 hWnd = GetDlgItem(hDlg, IDC_OP_TYPE_COMBO); // 获得当前被选中项目的索引 itemIndex = (DWORD)SendMessage(hWnd,

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档