I'm trying to emulate an existing program which writes to the Serial port.
Using Portmon, I can see that the existing application does the following:
So i worked out how to send all those messages to the serial port.
My application (according to portmon) does the following:
All looks good right? The same?
Hmm, thats what I thought, but my application does NOT do the same as the existing application.
Im missing something here - Its either something differemnt between the log files or Portmon is lying.
Does anyone have experience in this (PLEASE), cos its driving me barmy
Thanks
THT
Using Portmon, I can see that the existing application does the following:
Code:
0 0.00005559 LED.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open
1 0.00000615 LED.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS
2 0.00000168 LED.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:0 RM:10 RC:1000 WM:1 WC:1000
3 0.00000168 LED.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
4 0.00000140 LED.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
5 0.00000140 LED.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
6 0.00000168 LED.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
7 0.00000140 LED.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
8 0.00000140 LED.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
9 0.00000140 LED.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
10 0.00000168 LED.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
11 0.00000950 LED.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
12 0.00000447 LED.exe IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
13 0.00000503 LED.exe IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
14 0.00000363 LED.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
15 0.00000196 LED.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 0.00000363 LED.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40 XonLimit:2048 XoffLimit:512
17 0.00000168 LED.exe IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 4096 OutSize: 4096
18 0.00000251 LED.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR
19 0.00000196 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
20 0.00000251 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
21 0.00002123 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
22 0.00000196 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
23 0.00808846 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
24 0.08299211 LED.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 CANCELLED
25 0.00000196 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
26 0.00828178 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: Y
27 0.00000196 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
28 0.00828681 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
29 0.00000363 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
30 0.00722019 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
31 0.00000279 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
32 0.00828346 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
33 0.00000279 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
34 0.00826697 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
35 0.00000223 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
36 0.00810801 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
37 0.00000251 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
38 0.00827452 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
39 0.00000251 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
40 0.00827954 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: G
41 0.00000223 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
42 0.00779568 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
43 0.00000251 LED.exe IRP_MJ_CLEANUP Serial0 SUCCESS
44 0.10120364 LED.exe IRP_MJ_CLOSE Serial0 SUCCESS
So i worked out how to send all those messages to the serial port.
My application (according to portmon) does the following:
Code:
0 0.00005643 LED.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open
1 0.00000279 LED.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS
2 0.00000168 LED.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:0 RM:10 RC:1000 WM:1 WC:1000
3 0.00000168 LED.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
4 0.00000140 LED.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
5 0.00000168 LED.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
6 0.00000140 LED.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
7 0.00000140 LED.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
8 0.00000670 LED.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
9 0.00000140 LED.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
10 0.00000112 LED.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
11 0.00000950 LED.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
12 0.00000419 LED.exe IOCTL_SERIAL_SET_RTS Serial0 SUCCESS
13 0.00000447 LED.exe IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
14 0.00000335 LED.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
15 0.00000168 LED.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 0.00000307 LED.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:1 Replace:40 XonLimit:2048 XoffLimit:512
17 0.00000140 LED.exe IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 4096 OutSize: 4096
18 0.00000251 LED.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR
19 0.00000223 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
20 0.00000196 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
21 0.00002179 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
22 0.00000223 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
23 0.00821780 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
24 0.07483856 LED.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0 CANCELLED
25 0.00000307 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
26 0.00822842 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: Y
27 0.00000559 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
28 0.00826362 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
29 0.00000279 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
30 0.00829631 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
31 0.00000531 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
32 0.00826753 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
33 0.00000559 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
34 0.00826641 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
35 0.00000587 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
36 0.00492018 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
37 0.00000559 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
38 0.00810103 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
39 0.00000615 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
40 0.00826194 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: G
41 0.00000559 LED.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
42 0.00516798 LED.exe IRP_MJ_WRITE Serial0 SUCCESS Length 1: .
43 0.00001117 LED.exe IRP_MJ_CLEANUP Serial0 SUCCESS
44 0.09967747 LED.exe IRP_MJ_CLOSE Serial0 SUCCESS
All looks good right? The same?
Hmm, thats what I thought, but my application does NOT do the same as the existing application.
Im missing something here - Its either something differemnt between the log files or Portmon is lying.
Does anyone have experience in this (PLEASE), cos its driving me barmy
Thanks
THT