本文目录一览:
- 1、远程桌面登录,如图是他的操作系统,在这个系统里打不开虚拟串口配置工具VSPD,该怎么解决?
- 2、安装虚拟串口vspd时总是显示数据无效,安装不上。
- 3、vspd无法删除创建的虚拟串口对
- 4、串口调试助手与虚拟串口vspd
- 5、虚拟串口vspd,每次下载后报病毒怎么回事?
- 6、如何应用.dll文件破解虚拟串口
远程桌面登录,如图是他的操作系统,在这个系统里打不开虚拟串口配置工具VSPD,该怎么解决?
权限不够?
这个 vspd是要启动底层驱动的
对方 打开 这个软件,你再 登录
安装虚拟串口vspd时总是显示数据无效,安装不上。
或者再去下载一个Update4,更新一下bcb。
0101 属于其他进程的专用标志。
0102 标志已经设置,无法关闭。
0103 无法再次设置该标志。
0104 中断时无法请求专用标志。
0105 此标志先前的所有权已终止。
0106 请将软盘插入驱动器 %1。
0107 后续软盘尚未插入,程序停止。
0110 系统无法打开指定的设备或文件。
0111 文件名太长。
0112 磁盘空间不足。
0113 没有其他可用的内部文件标识符。
0114 目标内部文件标识符不正确。
0117 该应用程序所运行的 IOCTL 调用不正确。
0118 校验写入的开关参数值不正确。
0119 系统不支持所请求的命令。
0120 该系统上不支持此功能。
0121 标记已超时。
0123 文件名、目录名或卷标语法错误。
0124 系统调用层不正确。
0125 磁盘没有卷标。
0126 找不到指定的模块。
0127 找不到指定的过程。
0128 没有要等候的子进程。
0129 模式下运行。
0130 试图使用操作(而非原始磁盘I/O)的已打开磁盘分区的文件句柄。
0131 试图将文件指针移至文件开头之前。
0132 无法在指定的设备或文件中设置文件指针。
0133 对于包含已连接驱动器的驱动器,不能使用 JOIN 或 SUBST 命令。
0134 试图在已经连接的驱动器上使用 JOIN 或 SUBST 命令。
0135 试图在已经替换的驱动器上使用 JOIN 或 SUBST 命令。
0136 系统试图删除尚未连接的驱动器的 JOIN。
0137 系统试图删除尚未替换的驱动器的替换项。
0138 系统试图将驱动器连接到已连接的驱动器下的目录。
0139 系统试图将驱动器替换成已替换的驱动器下的目录。
0140 系统试图将驱动器连接到已替换的驱动器的一个目录中。
0141 系统试图将驱动器替换成到已连接的驱动器下的目录。
0142 此时系统无法运行 JOIN 或 SUBST。
0143 系统无法将驱动器连接到或替换成同一驱动器下的目录。
0144 此目录不是该根目录的子目录。
0145 该目录未清空。
0146 指定的路径已经在替换中使用。
0147 资源不足,无法执行该命令。
0148 此时无法使用指定的路径。
0149 试图连接或替换某个驱动器目录,该驱动器上的某个目录是上一次替换的目标目录。
0150 CONFIG.SYS 文件未指定系统跟踪信息,或禁止跟踪。
0151 DosMuxSemWait 的指定信号事件的数目不正确。
0152 DosMuxSemWait 没有运行;已经设置太多的标志。
0153 DosMuxSemWait 列表不正确。
0154 输入的卷标超过目标文件系统的标号字符长度极限。
0155 无法创建其他线程。
0156 接收进程拒绝该信号。
0157 已经放弃该区域,因此无法锁定。
0158 该区域已经解除锁定。
0159 线程标识符的地址错误。
0160 传到 DosExecPgm 的参数字符串错误。
0161 指定的路径无效。
0162 信号已挂起。
0164 系统无法创建其他线程。
0167 无法锁定文件的范围。
0170 所要求的资源正在使用中。
0173 锁定请求对于提供的取消区域不重要。
0174 文件系统不支持到锁定类型的自动更改。
0180 系统检测到错误的区域号码。
0182 操作系统无法运行 %1。
0183 不能创建已经存在的文件。
0186 传送的标志不正确。
0187 找不到指定的系统信号名称。
0188 操作系统无法运行 %1。
0189 操作系统无法运行 %1。
0190 操作系统无法运行 %1。
0191 无法在 Win32 模式下运行 %1。
0192 操作系统无法运行 %1。
0193 %1 不是有效的 Win32 应用程序。
0194 操作系统无法运行 %1。
0195 操作系统无法运行 %1。
0196 操作系统无法运行此应用程序。
0197 当前无法配置操作系统运行此应用程序。
0198 操作系统无法运行 %1。
0199 操作系统无法运行此应用程序。
0200 代码段应小于 64K。
0201 操作系统无法运行 %1。
0202 操作系统无法运行 %1。
0203 系统找不到输入的环境选项。
0205 在命令子树中的进程没有信号句柄。
0206 文件名或扩展名太长。
0207 环 2 堆栈正在使用中。
0208 输入的全局文件名字符 * 或 不正确,或指定的全局文件名字符太多。
0209 所发送的信号不正确。
0210 无法设置信号处理程序。
0212 区域已锁定,无法重新分配。
0214 附加到此程序或动态链接模块的动态链接模块太多。
0215 无法嵌套调用 LoadModule。
0216 图像文件 %1 有效,但不适用于本机类型。
0230 管道状态无效。
0231 所有的管道实例都处于忙状态。
0232 管道正在关闭。
0233 在管道的另一端没有进程。
0234 有更多可用的数据。
0240 已取消会话。
0254 指定的扩展属性名无效。
0255 扩展属性不一致。
0258 等待操作过时。
0259 没有其他可用数据。
0266 无法使用复制功能。
0267 目录名无效。
0275 扩展属性不匹配缓冲区。
0276 所装载的文件系统上的扩展属性文件已被损坏。
0277 扩展属性表格文件已满。
0278 指定的扩展属性句柄无效。
0282 安装的文件系统不支持扩展属性。
0288 试图释放不属于调用者的多路同步信号。
0298 信号投递的次数太多。
0299 仅完成部分 ReadProcessMemory 或 WriteProcessMemory 请求。
0300 操作锁定请求被拒绝。
0301 系统接收了一个无效的操作锁定确认。
0317 在 %2 的消息文件中,系统无法找到消息号为 0x%1 的消息文本。
0487 试图访问无效地址。
0534 运算结果超过 32 位。
0535 该管道的另一方有一进程。
0536 等候进程打开管道的另一端。
0994 拒绝对扩展属性的访问。
0995 由于线程退出或应用程序的要求,I/O 操作异常终止。
0996 重叠的 I/O 事件不处于已标记状态。
0997 正在处理重叠的 I/O 操作。
0998 对内存位置的无效访问。
0999 执行页内操作出错。
1001 递归太深;堆栈溢出。
1002 窗口无法用来发送消息。
1003 无法完成此项功能。
1004 标志无效。
1005 卷不包含已识别的文件系统。请确认所有需要的文件系统驱动程序都已经加载,而且卷没有任何损坏。
1006 某文件的卷已在外部改变,因而打开的文件不再有效。
1007 要求的操作无法以全屏幕模式执行。
1008 试图引用并不存在的符号。
1009 配置注册表数据库已损坏。
1010 配置注册表主键无效。
1011 无法打开配置注册表主键。
1012 无法读取配置注册表主键。
1013 无法写入配置注册表主键。
1014 必须使用日志文件或其他副本来恢复注册表数据库中的某个文件。恢复成功。
1015 注册表已损坏。可能是一个包含注册表数据文件的结构已损坏,也可能内存中该文件的系统映像已损坏,或者因为备份副本(或日志)不存在(或损坏)导致无法恢复该文件。
1016 由注册表引起的 I/O 操作发生了不可恢复的错误。注册表将不能读取、写出或刷新包含注册表系统映像的其中一个文件。
1017 系统试图将文件加载或还原到注册表中,但是,指定的文件不是注册表文件格式。
1018 试图在注册表键(已经标记为删除)中完成的操作非法。
1019 系统无法在注册表日志文件中分配所需的空间。
1020 无法在已经有子键或键值的注册表项中创建符号链接。
1021 在易失的父键下不能创建固定的子键。
1022 通知的更改请求已经完成,并且返回信息还没有被送到调用者的缓冲区中。调用者需要列举所有文件以找到改动的内容。
1051 已将停止控制发送给与其他运行服务相关的服务。
1052 所要求的控制对此服务无效。
1053 服务没有及时地响应启动或控制请求。
1054 无法为该服务创建线程。
1055 服务数据库已锁定。
1056 该服务的实例已在运行。
1057 帐户名无效或者不存在,或者指定帐户名的密码无效。
1058 服务无法启动,可能因为被禁用,也可能因为没有关联的可用设备。
1059 已经指定了循环服务的从属关系。
1060 指定的服务不是所安装的服务。
1061 该服务此时无法接收控制消息。
1062 服务尚未启动。
1063 服务进程无法连接到服务控制程序。
1064 处理控制请求时,服务出现意外情况。
1065 指定的数据库不存在。
1066 服务返回服务特定的错误码。
1067 进程意外地终止。
1068 无法启动从属服务或组。
1069 由于登录失败,没有启动服务。
1070 启动后,服务保持在启动挂起状态。
1071 指定的服务数据库锁定无效。
1072 指定的服务已经标记为删除。
1073 指定的服务已经存在。
1074 系统当前正以上一次运行成功的配置运行。
1075 从属服务不存在,或已经标记为删除。
1076 已接受使用当前引导作为最后的有效控制设置。
1077 自从上一次启动以后,没有再次启动过该服务。
1078 该名称已经用作服务名或服务显示名。
1079 此服务的帐户不同于运行于同一进程上的其它服务的帐户。
1080 只能为 Win32 服务设置失败操作,不能为驱动程序设置。
1081 这个服务所运行的进程和服务控制管理器相同。所以,如果服务进程意外中止的话,服务控制管理器无法进行任何操作。
1082 这个服务没有设置恢复程序。
1083 配置成在该可执行程序中运行的这个服务不能执行该服务。
1100 已经到达磁带的物理尽头。
1101 磁带访问到文件标记。
1102 到达磁带或分区首部。
1103 磁带访问到文件组的末尾。
1104 磁带上没有其他数据。
1105 磁带无法分区。
1106 访问多重卷分区的新磁带时,当前的区块大小不正确。
1107 加载磁带时,找不到磁带分区信息。
1108 无法锁定媒体退出功能。
1109 无法卸载媒体。
1110 驱动器中的媒体已经更改。
1111 已经复位 I/O 总线。
1112 驱动器中没有媒体。
1113 在目标多字节代码页中不存在对单码字符的映射。
1114 动态链接库 (DLL) 初始化例程失败。
1115 正在关闭系统。
1116 无法终止系统关机,因为没有进行中的关机操作。
1117 由于 I/O 设备出现错误,无法运行该请求。
1118 串行设备初始化失败。将卸载串行驱动程序。
1119 无法打开正与其他设备共享中断请求 (IRQ) 的设备。至少有一个使用该 IRQ 的设备已经打开。
1120 由于再次写入串行口,串行 I/O 操作已结束。(IOCTL_SERIAL_XOFF_COUNTER 为零。)
1121 由于超时,串行 I/O 操作已结束。 (IOCTL_SERIAL_XOFF_COUNTER 未达到零。)
1122 在软盘上找不到标识符地址标记。
1123 软盘扇区标识符字段与软盘控制器磁道地址不匹配。
1124 软盘控制器报告软盘驱动程序不能识别的错误。
1125 软盘控制器返回的结果和注册的不一致。
1126 访问硬盘时,再校准操作失败,再试一次后也无法操作。
1127 访问硬盘时,磁盘操作失败,再试一次后仍没有作用。
1128 访问硬盘时,需要重启动磁盘控制器,但仍未成功。
1129 磁带已卷到尽头。
1130 可用的服务器存储区不足,无法执行该命令。
1131 检测到潜在的锁情况。
1132 指定的基址或文件偏移量没有正确对齐。
1140 试图更改系统电源状态的操作被另一应用程序或驱动程序禁止。
1141 系统 BIOS 无法更改系统电源状态。
1142 试图在一文件上创建超过系统允许数额的链接。
1150 指定的程序需要新的 Windows 版本。
1151 指定的程序不是 Windows 或 MS-DOS 程序。
1152 无法启动指定程序的多个实例。
1153 指定的程序是为 Windows 的早期版本编写的。
1154 运行此应用程序所需的某个库文件已损。
1155 没有应用程序与该操作中所指定的文件关联。
1156 将命令发送到应用程序时出现错误。
1157 找不到运行此应用程序所需的某个库文件。
1158 当前进程已使用了 Window 管理器对象的系统允许的所有句柄。
1159 消息只能与同步操作一起使用。
1160 指出的源元素没有媒体。
1161 指出的目标元素已包含媒体。
1162 指出的元素不存在。
1163 指出的元素是未显示的存储资源的一部分。
1164 指出的设备需要重新初始化,因为硬件有错误。
1165 设备显示在尝试进一步操作之前需要清除。
1166 设备显示它的门仍是打开状态。
1167 设备没有连接。
1168 找不到元素。
1169 索引中没有同指定项相匹配的项。
1170 在对象上不存在指定的属性集。
1171 传递到 GetMouseMovePoints 的点不在缓冲区中。
1172 跟踪(工作站)服务没运行。
1173 找不到卷 ID。
1175 无法删除要被替换的文件。
1176 无法将替换文件移到要被替换的文件。要被替换的文件保持原来的名称。
1177 无法将替换文件移到要被替换的文件。要被替换的文件已被重新命名为备份名称。
1178 卷更改记录被删除。
1179 卷更改记录服务不处于活动中。
1180 找到一份文件,但是可能不是正确的文件。
1181 日志项已从日志中删除。
1200 指定的设备名无效。
1201 设备当前虽然未连接,但它是记忆连接。
1202 试图记起已经记住的设备。
1203 网络供应商不接受给定的网络路径。
1204 指定的网络供应商名无效。
1205 无法打开网络连接配置文件。
1206 网络连接配置文件已损坏。
1207 无法列举非包容类。
1208 出现扩展错误。
1209 指定组名的格式无效。
1210 指定计算机名的格式无效。
1211 指定事件名的格式无效。
1212 指定域名的格式无效。
1213 指定服务名的格式无效。
1214 指定网络名的格式无效。
1215 指定共享名的格式无效。
1216 指定密码的格式无效。
1217 指定的邮件名无效。
1218 指定邮件目的地的格式无效。
1219 所提供的凭据与现有凭据设置冲突。
1220 试图与网络服务器建立会话,但目前与该服务器建立的会话太多。
1221 网络上的其他计算机已经使用该工作组或域名。
1222 网络不存在或者没有启动。
1223 用户已经取消该操作。
1224 所要求的操作无法在已经打开用户映射区域的文件中运行。
1225 远程系统拒绝网络连接。
1226 已经关闭网络连接。
1227 网络传输的终点已经有一个地址与其关联。
1228 网络终点尚未与地址关联。
1229 试图在不存在的网络连接中操作。
1230 试图在活动的网络连接上进行无效操作。
1231 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。
1232 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。
1233 不能访问网络位置。有关网络疑难解答的信息,请参阅 Windows 帮助。
1234 远程系统的目标网络端点没有运行任何服务。
1235 该请求已经终止。
1236 本地系统已经终止网络连接。
1237 无法完成操作。请再试一次。
1238 无法创建到该服务器的连接,因为已经到达了该帐户同时连接的最大数目。
1239 试图在该帐户未授权的时间内登录。
1240 尚未授权此帐户从该站登录网络。
1241 网络地址无法用于要求的操作。
1242 服务已经注册。
1243 指定的服务不存在。
1244 由于尚未验证用户身份,无法执行要求的操作。
1245 由于用户尚未登录网络,无法运行要求的操作。指定的服务不存在。
1246 继续工作。
1247 完成初始化操作后,试图再次运行初始化操作。
1248 没有其他本地设备。
1249 指定的站点不存在。
1250
vspd无法删除创建的虚拟串口对
右击计算机--管理--设备管理器--端口。可以看到配对的串口上有个黄色的感叹号。
在VSPD里点击add pair,看看,是不是又多了一对,但是这一对没有感叹号,点击delete pair是可以删除的。
这时右击感叹号图标,把它卸载掉,然后在VSPD里在add pair。(一定要再新建一对)。这时所有的感叹号都没了,恭喜你可以delete pair了。
串口调试助手与虚拟串口vspd
可以的!
虚拟串口vspd 一次 虚拟 2 个 相互连接的 串口,形成一条 串口通信线路
用 你的 串口程序 和 串口调试助手 分别打开这 2 个串口 就 可以 相互发送 接收 数据了
当然,你也可以 用 2个 串口调试助手
虚拟串口vspd,每次下载后报病毒怎么回事?
楼主你好:
你这样的情况是出问题了把
可能是病毒 不过不是太确定
建议楼主使用腾讯电脑管家
全盘查杀 或者指定查杀下
之后清理下系统垃圾
希望可以帮到楼主
如何应用.dll文件破解虚拟串口
网上搜索一番,主要有VSPM和VSPD,前者是在WIN7前使用稳定,后者在WIN7中使用稳定。我的电脑是WIN7_64的,所以选用了VSPD7。于是下了个VSPD7.1的安装包,安装完成后,利用软件界面就可以创建相应的虚拟COM口了。具体如何使用,可以参看这篇文章《虚拟串口VSPD的使用方法》。记住一点,VSPD的COM通信是成对的,一个用于接收数据,一个用于发送数据。
有了虚拟COM口后,就是写一个DEMO进行测试。具体可以参看这篇文件章《win7系统下用vspd软件进行串口编程实例》。
当虚拟COM口可以实现通讯之后,就想着我们的程序是依赖于这个VSPD安装包的,那如果我们是否可以不依赖呢?有两种方案:
方案一:自己写一个虚拟COM的驱动,然后里面实现。有兴趣的可以参看该文《开发虚拟串口驱动程序》。
方案二:VSPD安装包是一个安装程序,为了实现虚拟COM,必然会有相应的驱动。如果我们能够找到这个驱动并安装,之后用相应的接口来调用,或是可行。
方案一想了,但自认还没有这个能耐,于是果断放弃,退而选方案二。那么方案二要实现,首先要解决的问题是接口的调用,因为驱动程序即使不能做到自己安装,但还是可以通过VSPD安装包的安装来解决,那么VSPD中有没有提供这样的接口呢?
查看VSPD的用户手册(User Manual),里面果然有相应的接口(在Using serial port driver in your program下的Functions中),于是有C#写了相应的调用,下面是代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Add
using System.Runtime.InteropServices;
namespace Anser.U2Simulator.Model
{
public class VSPD
{
//[DllImport("VSPDCTL.dll", EntryPoint = "CreatePair", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Auto)]
//public static extern bool CreatePair(byte[] comName1, byte[] comName2);
/// summary
/// CreatePair creates a pair of virtual serial ports with given names.
/// It accepts two null-terminated strings determining which ports should be created as input.
/// For example, "COM5" and "COM6".
/// /summary
/// param name="comName1"A null-terminated string that defines the name of the first port in a pair/param
/// param name="comName2"A null-terminated string that defines the name of the second port in a pair/param
/// returnsCreatePair returns TRUE if virtual serial pair was created successfully and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool CreatePair(string comName1, string comName2);
/// summary
/// DeletePair deletes a pair of virtual serial ports with a given name.
/// As input it takes name of any virtual serial port in a pair.
/// For example, if you want to remove pair named "COM5"-"COM6",
/// you can pass either "COM5" or "COM6" as argument to DeletePair function.
/// /summary
/// param name="comName" A null-terminated string that defines one of the two port names in a pair you want to delete /param
/// returnsDeletePair returns TRUE if virtual serial pair was successfully deleted and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool DeletePair(string comName);
/// summary
/// DeleteAll deletes all virtual serial ports currently present in a system. It accepts no arguments at input.
/// /summary
/// returnsDeleteAll returns TRUE if all virtual serial pairs were successfully deleted and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool DeleteAll();
[DllImport("vspdctl.dll")]
public static extern bool SetStrictBaudrateName(string comName, bool isStrictBaudrate);
[DllImport("vspdctl.dll")]
public static extern bool SetStrictBaudrateHandle(IntPtr handle, bool isStrictBaudrate);
/// summary
/// SetStrictBaudrate enables/disables full baudrate emulation,
/// needs the name of one of the paired virtual ports and boolean parameter
/// that defines if strict baudrate emulation should be enabled or not.
/// /summary
/// param name="comName"A null-terminated string that defines one of the two port names in a pair /param
/// param name="isStrictBaudrate"A boolean variable which should be TRUE
/// if you want to enable strict baudrate emulation and FALSE if you want to disable it/param
/// returnsSetStrictBaudrate returns TRUE if strict baudrate emulation was successfully enabled and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool SetStrictBaudrate(string comName, bool isStrictBaudrate);
/// summary
/// SetBreak enables/disables line break emulation in virtual serial ports.
/// /summary
/// param name="comName"A null-terminated string that defines one of the two port names in a pair/param
/// param name="isBreak" A boolean variable should be TRUE if you want to emulate connection break and FALSE if you want to re-establish it /param
/// returnsSetBreak returns TRUE if line break emulation was successfully enabled and FALSE otherwise./returns
[DllImport("vspdctl.dll")]
public static extern bool SetBreak(string comName, bool isBreak);
/// summary
/// QueryBus: QueryBus sends request to get complete information from the virtual serial bus installed by VSPD.
/// /summary
/// param name="inBufferPtr"A pointer to VSBUS_QUERY or VSBUS_QUERY_EX structures.
/// If you want to get information about all current virtual serial ports
/// then use VSBUS_QUERY structure
/// and if you want to get extended information
/// about single virtual serial pair then use VSBUS_QUERY_EX structure./param
/// param name="inBufferSize"/param
/// param name="outBufferPtr"/param
/// param name="outBufferSize"A pointer to either PORT_INFORMATION or PORT_INFORMATION_EX structures list.
/// If you have used VSBUS_QUERY than you should get PORT_INFORMATION list
/// and if you used VSBUS_QUERY_EX then you should get PORT_INFORMATION_EX./param
/// returns/returns
[DllImport("vspdctl.dll")]
public static extern bool QueryBus(IntPtr inBufferPtr, long inBufferSize, IntPtr outBufferPtr, long outBufferSize);
/// summary
/// SetWiring sets custom signal lines wiring (pinout).
/// /summary
/// param name="comName"A null-terminated string that defines one of the two port names in a pair /param
/// param name="bufferPtr"A pointer to VSERIAL_WIRING structure /param
/// param name="bufferSize"Size of Buffer parameter in bytes /param
/// returnsSetWiring returns TRUE if signal lines wiring was created successfully and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool SetWiring(string comName, IntPtr bufferPtr, long bufferSize);
/// summary
/// SetAccessList restricts access to created virtual serial ports for various applications.
/// /summary
/// param name="comName" A null-terminated string that defines one of the two port names in a pair /param
/// param name="bufferPtr"A pointer to PROGRAM_ACCESS array /param
/// param name="bufferSize"Size of Buffer parameter in bytes /param
/// returnsSetAccessList returns TRUE if port access list was created successfully and FALSE otherwise/returns
[DllImport("vspdctl.dll")]
public static extern bool SetAccessList(string comName, IntPtr bufferPtr, long bufferSize);
//[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=1)]
public struct _VSBUS_QUERY
{
/// summary
/// VSBUS_QUERY structure size
/// /summary
ulong Size;
/// summary
/// Has QUERYTYPE_PORTS = 1 value. Can be extended in the future.
/// /summary
ulong QueryType;
};
private const int MAX_PORTNAME_LEN = 6;
public struct _VSBUS_QUERY_EX
{
/// summary
/// VSBUS_QUERY_EX structure size
/// /summary
ulong Size;
/// summary
/// 1:query all virtual ports.
/// 2:query particular virtual pair
/// 3:query particular virtual pair; name of the application, which created the port, is returned.
/// /summary
ulong QueryType;
/// summary
/// Unicode name of any port in the pair you want to delete.
/// For instance, if "COM6-COM7" virtual serial ports pair was created,
/// then to remove it, PortName's value should be COM6 or COM7.
/// /summary
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PORTNAME_LEN)]
string PortName;
}
}
}