在windows操作系统下,一个并口被其他程序以独占模式打开,是否能够写另一个windows driver程序对这个并口读和写

[复制链接]
查看11 | 回复7 | 2021-1-27 06:30:15 | 显示全部楼层 |阅读模式
在windows操作系统下,一个并口被其他程序以独占模式打开,是否能够写另一个windowsdriver程序对这个并口读和写。
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
类似于PortMon,如下:
http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx
HowitWorks:WinNT
ThePortmonGUIisresponsibleforidentifyingserialandparallelports.ItdoessobyenumeratingtheserialportsthatareconfiguredunderHKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialCommandtheparallelportsdefinedunderHKEY_LOCAL_MACHINE\Hardware\DeviceMap\ParallelPorts.ThesekeyscontainthemappingsbetweenserialandparallelportdevicenamesandtheWin32-accessiblenames.
Whenyouselectaporttomonitor,PortmonsendsarequesttoitsdevicedriverthatincludestheNTname(e.g.\device\serial0)thatyouareinterestedin.ThedriverusesstandardfilteringAPIstoattachitsownfilterdeviceobjecttothetargetdeviceobject.First,itusesZwCreateFiletoopenthetargetdevice.ThenittranslatesthehandleitreceivesbackfromZwCreateFiletoadeviceobjectpointer.Aftercreatingitsownfilterdeviceobjectthatmatchesthecharacteristicsofthetarget,thedrivercallsIoAttachDeviceByPointertoestablishthefilter.FromthatpointonthePortmondriverwillseeallrequestsaimedatthetargetdevice.
Portmonhasbuilt-inknowledgeofallstandardserialandparallelportIOCTLs,whicharetheprimarywaythatapplicationsanddriversconfigureandreadstatusinformationfromports.TheIOCTLsaredefinedintheDDKfile\ddk\src\comm\inc\ntddser.hand\ddk\src\comm\inc\ntddpar.h,andsomearedocumentedintheDDK.
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层

添加过滤驱动?

回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
完整的需求如下:
在Windows操作系统下,开发一个软件,虚拟一个并口,并且这个虚拟的并口绑定物理并口,对虚拟并口的读、写就相当于物理并口的读、写,注:物理并口被另一个程序以独占的方式打开。
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
我的需求应该与过滤无关。
回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
portmon是监视工具,不会操作设备。
我认为你这个需求,如果替换掉系统的并口驱动,虚拟出两个设备来,其中一个用于独占打开还是可行的。
wdk的sample里有个例子教toaster可以参考下,usb的,应该原理差不多。

回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层

既然是独占,你就没发操作了,除非自己另写驱动了
开始看你的描述,以为只要抓取数据,,过滤是可以的
但是你要操作
也只能从新自己写驱动了
当然,过滤时,你也可以将数据替换成你自己的内容的嘛


回复

使用道具 举报

千问 | 2021-1-27 06:30:15 | 显示全部楼层
引用7楼的回复:既然是独占,你就没发操作了,除非自己另写驱动了
开始看你的描述,以为只要抓取数据,,过滤是可以的
但是你要操作
也只能从新自己写驱动了
当然,过滤时,你也可以将数据替换成你自己的内容的嘛

++
既然是独占,其他应用程序就无法向物理端口发送或者接受数据了.
考虑将物理端口的驱动程序替换成泥自己的,实现非独占访问方式的支持.这样,不管是虚拟并口还是其他应用程序都可以同时访问物理端口.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行