当前位置: 首页 > news >正文

怎么增加网站的关键词库360优化大师旧版

怎么增加网站的关键词库,360优化大师旧版,公司的管理方式与管理方法,网站建设淘宝客模板虚拟串口设备驱动,虚拟串口的完整源代码#xff0c;包括注释和开发日志。据说市值5万人民币#xff01; Virtual Serial Device Driver Windows2K下虚拟串口设备驱动程序及相关应用程序内容列表 主要功能 使用说明 各模块说明 工作机制 更新和改进 不足之处 跟我联系主要功能… 虚拟串口设备驱动,虚拟串口的完整源代码包括注释和开发日志。据说市值5万人民币 Virtual Serial Device Driver Windows2K下虚拟串口设备驱动程序及相关应用程序内容列表 主要功能 使用说明 各模块说明 工作机制 更新和改进 不足之处 跟我联系主要功能 在Windows2K操作系统上虚拟出若干串口设备这些虚拟串口设备作为 TDI Client 将串口应用程序(比如超级终端)读写串口设备的操作通过网络的方式传递到远端即将应用程序写入的数据以UDP协议发送到远端目标机器的指定端口监听本机指定端口将所有在此端口收到的UDP报文数据提交给应用程序。1. 在操作系统中虚拟出若干串口。可以使用串口工具(比如操作系统自带的超级终端软件)对串口进行打开、发送、接收、关闭等操作。 2. 由于是虚拟串口所以可以设置任意波特率、数据位、奇偶校验、停止位等端口操作。 3. 虚拟串口创建以后打开本机的6001端口设置接收回调函数用于接收此端口上的数据。应用程序写入虚拟串口的数据则直接发送到远端指定IP地址和端口。 使用说明 1. 安装busdriver目录中提供的toaster总线驱动程序BusEnum.sys。安装步骤详见DDK的toasterbus例子。 2. 控制台上运行enum -p 1对新的硬件设备指定 inf目录安装inf目录中提供的本虚拟串口驱动程序。安装完毕以后在“设备管理器”的端口(COM和LPT)中应该多出新的设备。enum程序由DDK的toasterexeenum例子编译。只是改动了toasterincpublic.h中的#define BUS_HARDWARE_IDS LToasterMsToaster 3. 控制台上运行test.exe创建/删除虚拟串口设备的DOS名设定远端目标机器的IP地址和端口。 4. 卸载设备可以在控制台上运行 enum -u 1此操作代表强行拔出设备。另一个方法是点击桌面右下角系统托盘中的“拔下或弹出硬件”图标来停止设备的工作。 6. 更新驱动程序时只需要将所有的虚拟串口卸载然后再编译驱动程序build -ceZ而后将编译后的.sys文件拷贝到system32drivers目录即可。 虚拟串口设备驱动完整源代码内附测试工具注意事项 ------- 1. 本项目中所有编译后的驱动和应用程序都在inf目录下。在Win2K(sp4)平台上测试的较多在Xp(sp2)平台上作过简单测试。没有在多CPU下进行测试。由于Win98下串口的结构跟Win2k以后差别较大所以本程序不能在Win98下使用。 2. 简单起见绑定本机端口这一步没有做成动态的。只是用一个静态变量从6001开始累加来指定本机端口。创建多个虚拟串口设备的时候每一个虚拟串口设备依次绑定本机600160026003等以后端口。因此远端UDP发送程序可以分别对这些端口发送数据来进行测试。 3. 发送到远端的指定端口这一步可以动态实现即通过test程序给每一个虚拟串口设备指定端口。 4. 编译win2K和Xp平台下的驱动程序应该采用相应的编译环境。在Win2000编译环境下编译的.sys文件在Xpsp2下可能有点小问题。反之没有做过测试。各模块说明 busdriver toaster总线的安装文件包括inf文件和 .sys文件 exe  串口应用程序控制虚拟串口设备。参考其目录的说明.txt inc  application 和 sys都要用到的若干宏定义和其他 inf  最终安装所需要的.inf .sys 和应用程序 logdebug 开发日志说明文档 others  开发辅助软件例子和测试工具。 sys  WDM类型的驱动程序虚拟串口驱动程序的主体 工作机制 虚拟设备的创建 ----------------跟商业软件Virtual Serial Ports Driver XP3类似。 首先利用DDK的toaster bus例子安装toaser bus总线然后利用该总线驱动程序生成一个(或几个)虚拟PDO。对这些虚拟的PDO加载这个虚拟串口驱动程序。 注意toaster bus driver安装以后不会自动生成虚拟设备PDO需要运行相应的enum程序。 “enum -p 1“会生成一个新的虚拟设备。该设备的Hardware ID基于NTDDKsrcgeneraltoasterincpublic.h里的#define BUS_HARDWARE_IDS LToasterMsToaster的定义。这个Hardware ID和我们的虚拟串口驱动程序inf文件(MySerial.inf)里边指定的Hardware ID必须一致。否则安装本驱动程序的时候会提示“未发现相关的硬件信息”。多个虚拟设备的创建 在AddDevice中设置静态变量每次虚拟设备创建、加载驱动程序都会调用该函数。该静态变量累加。生成的FDO的名字由DeviceSerial11开始递增 每一个虚拟设备都可以采用1~255之间没有被占用的数字来动态的生成DOS名即COMn。 具体操作参考exe目录下的readme.txt读写方法 ---------------- 1. 读数据采用缓冲区方式 设备在启动时打开本机UDP协议的6001端口设置接收回调函数将该端口上收到的所有数据拷贝到接收缓冲区。接收缓冲区是一个环形缓冲区保存接收到的最新数据。应用程序若不及时读取数据可能会被最近接收到的数据所刷新。2. 写数据采用直接发送方式 应用程序向设备写的数据直接以UDP协议发送到之前设定的远端IP地址和端口上。此过程为阻塞式。不同于读数据方式没有专门为写数据设置缓冲区。串口相关DeviceIoContrl的处理 ---------------- 着重处理 IOCTL_SERIAL_GET_COMMSTATUS IOCTL_SERIAL_GET_WAIT_MASK IOCTL_SERIAL_SET_WAIT_MASK IOCTL_SERIAL_WAIT_ON_MASK IOCTL_SERIAL_PURGE 简单处理 IOCTL_SERIAL_SET_BAUD_RATE IOCTL_SERIAL_GET_BAUD_RATE IOCTL_SERIAL_SET_LINE_CONTROL IOCTL_SERIAL_GET_LINE_CONTROL IOCTL_SERIAL_SET_TIMEOUTS IOCTL_SERIAL_GET_TIMEOUTS IOCTL_SERIAL_SET_CHARS IOCTL_SERIAL_GET_CHARS IOCTL_SERIAL_SET_QUEUE_SIZE IOCTL_SERIAL_GET_HANDFLOW IOCTL_SERIAL_SET_HANDFLOW 其余IOCTL则直接返回IOCTL_SERIAL_GET_COMMSTATUS 返回CommsPorts的状态即deviceExtension-SerialStatus。应用程序根据这里边的AmountInInQueue和AmountInOutQueue来判断是否有接收/发送缓冲区里边是否有数据。IOCTL_SERIAL_GET_WAIT_MASK 返回驱动当前等待的Mask返回值应该与上一次Set_Wait_Mask保持一致 IOCTL_SERIAL_SET_WAIT_MASK 设置驱动应该等待的Mask。此时驱动应该取消以前Pending的ReadIrp和WaitOnMaskIrp。 IOCTL_SERIAL_WAIT_ON_MASK 根据当前的WaitMask来判断当设备出现WaitMask上的事件应该返回该Irp若没有WaitMask上的事件发生则IoMarkIrpPending返回Status_Pending。以后某个时间出现WaitMask事件以后再返回该Irp IOCTL_SERIAL_PURGE 取消指定的Rx/Tx的Irp。更新和改进 1、摒弃了上一版本的双串口互连的实现。本版本将虚拟串口设备作为TDI Client通过网络与远端进行数据交换。网络通信中采用的是UDP协议所以不能保证数据传输的可靠性和顺序性。若对上述性能有要求可以采用TCP协议建立一个 Connection-Oriented 连接。具体实现请参考DDK文档。 2、串口设备的枚举虚拟串口设备的DosName的创建和删除远端目标机器的IP地址和端口目前均由DeviceIoControl来负责控制。因此enum -p 1创建虚拟串口设备以后若不运行test.exe文件很多串口应用程序可能无法找到该虚拟串口设备。关于test.exe的使用参考相应目录下的文档。 3、较上一版本本次对串口相关的DeviceIoContrl进行了更多的处理主要是如下 IOCTL_SERIAL_GET_COMMSTATUSIOCTL_SERIAL_GET_WAIT_MASKIOCTL_SERIAL_SET_WAIT_MASKIOCTL_SERIAL_WAIT_ON_MASKIOCTL_SERIAL_PURGEIOCTL_SERIAL_SET_TIMEOUTS。 4、在读数据中若当前缓冲区里边没有数据则设定一个DPC启动定时器。根据IOCTL_SERIAL_SET_TIMEOUTS设定的超时值作简单的超时处理。 5、对于如何将设备出现在“拔出或弹出硬件”对话框里边(如同U盘一样)可参考PnpQueryCapabilities函数的实现。 6、TDI的相关操作均在TDIClient.c文件中。这部分主要参考的代码是TDIClient和TDISample两个项目。不足之处 1. 对于多线程应用程序读写虚拟串口的情况支持的不够好。鉴于目前大部分串口应用程序都是采用单线程读写设备所以实际中影响不大。 2. 串口的超时处理比较简单。 3. 网络TDI Client方面仅实现了UDP的无连接服务网络通信质量不高。目前设备启动后就固定的监听某一端口该端口是硬编码到驱动程序里边不够灵活。 自从上一版虚拟串口程序发布以后一年以来陆续的收到了很多网友的来信。有鼓励的有报告bug的还有很多提出设计思路的。总计不下30余人这里一并表示感谢 作为一个虚拟串口设备驱动本身没有太多的应用场合称之为“玩具软件”还算比较恰当。所实现的功能基本上属于演示性质的。串口部分对上一版进行了一些完善TDI Client部分则基本上是从others下提供的TDI Sample等代码中略加修改移植过来。所以对于驱动开发的新手来说还算有点参考价值。对于中高手而言不如直接看others下的源代码更有收获。
http://www.w-s-a.com/news/109715/

相关文章:

  • 个人建站教程优秀的定制网站建设
  • 农村建设集团有限公司网站下载百度极速版
  • 微信公众号个人可以做网站么做企业网站需要哪些
  • 如何用付费音乐做视频网站wordpress如何设置首页
  • 杨凯做网站网站首页 排版
  • 网站图片标签江苏省建设类高工申报网站
  • 网站建设中的英文什么网站可以做医疗设备的
  • 柳州购物网站开发设计服装网站的建设与管理
  • 做网站的上海市哪家技术好北京百姓网免费发布信息
  • 网站文章排版制作网站软件
  • 云南网站开发公司网站商城定制网站建设
  • 企业网站的新闻资讯版块有哪些肇庆自助建站模板
  • 怎么做平台网站吗为网站做seo需要什么
  • 苏州吴江建设局招标网站海南网站搭建价格
  • 网站建设主要研究内容用哪个程序做网站收录好
  • 网站建设如何开单装修设计图免费
  • 做内容网站赚钱吗seo推广具体做什么
  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板
  • 百度怎么免费做网站网站建设大作业有代码
  • 小说素材网站设计素材网站特点
  • 如何建设一个好的网站WordPress主题设置数据库
  • 网站被模仿十堰网站制作公司
  • 怎么样做免费网站个人网站备案幕布
  • 做ppt的动图下载哪些网站制作一个网站需要多少时间
  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频