C
Commtech_Josh
Guest
I'm not sure what all information to provide here. I'm using a slightly modified version of the serial sample provided by Microsoft to support our multiport asynchronous RS422 cards. The modification is largely adding IOCTLs for custom clock speeds and 9-bit support. In Windows 7, it works very reliably and has continued to work since 2014. Now in Windows 10, every so often EvtIoWrite seems to simply never call the appropriate function.
The way I determined this is by inserting DbgPrints and using WinDbg along with both RealTerm and/or another small loop program written in C. The behavior is intermittent. What happens is that (using RealTerm or the other small program) I will transmit data continuously, about 4 bytes at a time. At first, it will operate fine on all 4 ports. Then, after a significant amount of time (1 hour+), it'll stop. I have DbgPrints at the entrance and exit of EvtIoWrite (and in a few other key places) and there's no indication that anything fails or exits early. At some point, it simply never enters EvtIoWrite even though WriteFile() starts blocking (and never stops blocking). There's no indication in WinDbg that there's an issue, driver verifier sees no issues, and because of this I can't 'catch' it as it happens and instead have to check it periodically to see if it has stopped. The frequency of the failure seems to increase and decrease with the number of ports in use (~1 hour with all 4 ports running, much longer if ever for less).
I'm at a real loss on how to move forward on debugging this problem.
Thanks!
Continue reading...
The way I determined this is by inserting DbgPrints and using WinDbg along with both RealTerm and/or another small loop program written in C. The behavior is intermittent. What happens is that (using RealTerm or the other small program) I will transmit data continuously, about 4 bytes at a time. At first, it will operate fine on all 4 ports. Then, after a significant amount of time (1 hour+), it'll stop. I have DbgPrints at the entrance and exit of EvtIoWrite (and in a few other key places) and there's no indication that anything fails or exits early. At some point, it simply never enters EvtIoWrite even though WriteFile() starts blocking (and never stops blocking). There's no indication in WinDbg that there's an issue, driver verifier sees no issues, and because of this I can't 'catch' it as it happens and instead have to check it periodically to see if it has stopped. The frequency of the failure seems to increase and decrease with the number of ports in use (~1 hour with all 4 ports running, much longer if ever for less).
I'm at a real loss on how to move forward on debugging this problem.
Thanks!
Continue reading...