是否可以从Windows XP上已在使用的COM端口进行读取?
我希望看到一些软件与插入串行设备的设备之间的通信。我用C#写了一个小程序来监控COM,但是一旦它被其他设备使用,它就不会再让你打开它了。如何监控已在使用的COM端口?
我对第三方软件持开放态度。
发布于 2010-05-17 23:18:59
是的,这在技术上是可行的。您将需要一个筛选器驱动程序,这是一种在本机串行端口驱动程序之前注入自身的组件的设备驱动程序类型。在将其发送到常规驱动程序之前,它会在驱动程序IRPs中进行破解。
这是SysInternals的PortMon实用程序使用的技术。但是,您不能用C#代码编写这样的驱动程序,CLR不能加载到环0中。至少在超级秘密的Midori项目重见天日之前不会。
COM筛选器驱动程序非常常见,例如,请查看this one。不过,您必须进行一些谷歌搜索才能找到具有.NET包装器的应用程序。
发布于 2010-05-17 22:12:10
PortMon是经典的COM端口监视器。它必须在程序打开COM端口之前运行,但可以启用/禁用监控部分。
发布于 2010-05-17 22:14:49
您可以使用Portmon for Windows来监视活动。另一种方法是使用一些硬件和一台笔记本电脑。我不确定你怎么能用C#应用程序自己监控它。一旦您连接到它并尝试再次连接,它就已经在使用中。
也可以看看这个,它与PortMon的工作原理有一定的关联:
Serial Port Redirection or Splitting - Stack Overflow
如果您有或可以获得多个COM端口,则可以使用拆分器并从另一个端口进行监视。
https://stackoverflow.com/questions/2849682
复制相似问题