监视已在使用的COM端口

rro*_*oss 4 c# windows-xp serial-port

是否可以从Windows XP上已经使用的COM端口读取?

我希望看到某些软件和插入串行设备的设备之间的通信.我使用C#编写了一个小程序来监视COM,但是一旦它被其他设备使用它就不会让你再次打开它.如何监控已使用的COM端口?

我对第三方软件持开放态度.

Han*_*ant 8

是的,这在技术上是可行的.您需要一个过滤器驱动程序,一种在本机串行端口驱动程序之前注入自身的组件的设备驱动程序类型.在将它们发送给常规驱动程序之前,它会在驱动程序IRP中出现问题.

这是SysInternals的PortMon实用程序使用的技术.但是,你不能在C#代码中编写这样的驱动程序,CLR无法加载到0环中.至少在超级秘密的Midori项目看到光明之前不会.

COM过滤器驱动程序非常常见,例如,查看这个.你必须做一些谷歌搜索才能找到一个有.NET包装的人.


Ste*_*ary 6

PortMon是经典的COM端口监视器.它必须在程序打开COM端口之前运行,但可以启用/禁用监视部分.