Исключение тайм-аута при записи в виртуальный COM
Я пытаюсь записать в COM-порт, используя пример.net
У меня нет проблем с записью в реальный COM, но когда я пытаюсь записать в виртуальный COM, я получаю исключение тайм-аута
Необработанное исключение: System.TimeoutException: истекло время записи. в System.IO.Ports.SerialStream.Write(массив Byte[], смещение Int32, число Int32, тайм-аут Int32) в System.IO.Ports.SerialPort.Write(текст строки) в System.IO.Ports.SerialPort.WriteLine(Текст строки)
Я погуглил проблему и нашел это. в соответствии с тем, что там сказано, это проблема:
Функция write().net использует CreateFile и WriteFile Async следующим образом:
CreateFile("\\\\.\\" + portName,
NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-access
IntPtr.Zero, // no security attributes
UnsafeNativeMethods.OPEN_EXISTING, // comm devices must use OPEN_EXISTING
FILE_FLAG_OVERLAPPED,
IntPtr.Zero // hTemplate must be NULL for comm devices
);
WriteFile(_handle, p + offset, count, IntPtr.Zero, overlapped);
когда я использовал те, у меня было NULL вместо FILE_FLAG_OVERLAPPE
Мой вопрос, как я могу преодолеть эту проблему? я должен написать свой собственный код?