Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关闭Windows(虚拟)串行端口-操作系统释放这些端口需要多长时间?_Python_Windows_Com0com - Fatal编程技术网

Python 关闭Windows(虚拟)串行端口-操作系统释放这些端口需要多长时间?

Python 关闭Windows(虚拟)串行端口-操作系统释放这些端口需要多长时间?,python,windows,com0com,Python,Windows,Com0com,我正在编写一个Python(2.6)应用程序,它使用com0com虚拟串行端口。它在WindowsServer2008R2(sp1)上运行(我在我的开发机器Win7上也看到了同样的问题) com0com端口对是在应用程序运行之前创建的。应用程序打开端口(通过创建serial.serial对象),使用它们,然后关闭它们 尝试过早地重复使用该端口失败-调用构造函数没有问题(即,它返回一个打开的serial.serial对象),但该对象似乎不可用。由于这些对象正被另一个应用程序使用,所以应用程序可能没

我正在编写一个Python(2.6)应用程序,它使用com0com虚拟串行端口。它在WindowsServer2008R2(sp1)上运行(我在我的开发机器Win7上也看到了同样的问题)

com0com端口对是在应用程序运行之前创建的。应用程序打开端口(通过创建serial.serial对象),使用它们,然后关闭它们

尝试过早地重复使用该端口失败-调用构造函数没有问题(即,它返回一个打开的serial.serial对象),但该对象似乎不可用。由于这些对象正被另一个应用程序使用,所以应用程序可能没有正确地发布某些内容

是否存在重复使用com0com端口的已知间隔?com0com端口是否以某种方式设置错误?还是别的什么

伪代码超高级代码概述:

loop:
    serialPort = serial.Serial(port=COM90)
    subprocess.check_call([blah.exe, "COM90"])
    # this check_call succeeds on first iteration
    # fails on second iteration, but will succeed subsequently ...
    serialPort.close()
    # pause before reusing COM90

看起来是1秒超时。设备的
IRP\u MJ\u CLOSE
功能是,我们可以通过
FdoPortClose
StartIrpClose
,将
10**7
的相对计时器(负值)设置为
10**7
,即1秒。DPC调用
TimeOutClose
,调用
TimeoutRoutine
,调用
FdoPortIo
,用于
C0C\u IO\u TYPE\u CLOSE\u COMPLETE
。这看起来是1秒超时。设备的
IRP\u MJ\u CLOSE
功能是,我们可以通过
FdoPortClose
StartIrpClose
,将
10**7
的相对计时器(负值)设置为
10**7
,即1秒。DPC调用
TimeOutClose
,它调用
TimeoutRoutine
,它调用
FdoPortIo
,用于
C0C\u IO\u TYPE\u CLOSE\u COMPLETE