Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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
C++ 在串行端口上写入时出现错误112(磁盘已满)意味着什么?_C++_Windows_Winapi_Serial Port_Citrix - Fatal编程技术网

C++ 在串行端口上写入时出现错误112(磁盘已满)意味着什么?

C++ 在串行端口上写入时出现错误112(磁盘已满)意味着什么?,c++,windows,winapi,serial-port,citrix,C++,Windows,Winapi,Serial Port,Citrix,在Windows计算机上写入串行端口(COM1)时,我遇到写入错误。返回的错误是112(磁盘已满)。由于这是一个串行端口,我不明白错误的意思 是否缓冲区已满?我不这么认为,因为我在打开端口后发送的第一个请求中收到错误。类似的I/O错误是由设备驱动程序生成的。现在,它很少是微软提供的标准Windows串口驱动程序,它只在真正的串口硬件上工作。串行端口通常由使用自定义硬件实现通信的设备驱动程序模拟。例如蓝牙和USB。但任何事情都会发生 这对设备制造商来说很方便,因为他们不必提供自定义DLL,让您可以

在Windows计算机上写入串行端口(COM1)时,我遇到写入错误。返回的错误是112(磁盘已满)。由于这是一个串行端口,我不明白错误的意思


是否缓冲区已满?我不这么认为,因为我在打开端口后发送的第一个请求中收到错误。

类似的I/O错误是由设备驱动程序生成的。现在,它很少是微软提供的标准Windows串口驱动程序,它只在真正的串口硬件上工作。串行端口通常由使用自定义硬件实现通信的设备驱动程序模拟。例如蓝牙和USB。但任何事情都会发生

这对设备制造商来说很方便,因为他们不必提供自定义DLL,让您可以在自己的代码中使用设备。通过模拟串行端口,您可以简单地使用标准winapi函数与设备通信

但就这一点而言,一个核心问题是您实际上并没有使用串行端口硬件。另一个原因是这些设备制造商并不擅长编写定制驱动程序。特别是USB驱动程序因其质量差而臭名昭著。没有任何帮助的是,串行端口没有支持即插即用,它们太原始,无法支持设备发现。因此,发现哪个端口号连接到设备以及在设备使用时处理断开设备连接等简单的事情都是严重的障碍


所以,可以肯定,“磁盘已满”错误代码并不意味着什么。设备驱动程序编写器获取特定于设备的某种错误情况的错误代码。找出错误真正含义的唯一方法是询问供应商。

您使用哪个函数写入COM端口-?您可以通过TeraTerm发送命令吗?@FrerichRaabe:我现在没有这些信息。我知道我们正在直接使用Winbase api。@Pramod:是的,我们可以毫无问题地与其他应用程序(如Advanced Serialp Port Monitor)通信。@FrerichRaabe:没错,我们使用的是WriteFile。好的,在Citrix创建将来宾phisical COM映射到主机“虚拟”端口的驱动程序时,我将尝试填写对Citrix的支持请求。谢谢,你太棒了。“串行端口不是PnP”部分是不真实的,更重要的是与这个问题无关。另一端的设备可能无法识别,但计算机端的串行端口肯定可以是PnP。例如,这些USB到串行端口转换器是PC端的PnP(插入它们将加载正确的串行端口驱动程序,但不会加载医疗设备的驱动程序)