Good news
It works! When I write 10 bytes SERIA_STATE notification into the interrupt IN endpoint, it sets DSR asserted in my application. According to a USB analyzer, the latency is less than 10 ms, as set in the interrupt endpoint description.
I send SERIAL_STATE notifications, depending on DTR state in Control Line State request sent by the host. It works like a charm.
I was worried how the Windows driver (usbser.sys) would handle the interrupt notification. Well, it handles DSR properly.
Bad news
With Codesourcery G++ lite complier, I was not able to make fnwrite into USBPortID_interrupt_3 work reliably. The USB analyzer shows notification is delivered sometimes OK, but sometimes no transmission or wrong string to the host.
I could not figure out what is wrong. I tried Codeworrior, and everything works fine.
I suspect something is not right with USB fnWrite if complied with the GNU complier.
My wild guess is it maybe be interrupt-related.
I also had problems in fnwrite into the data IN enpoint.
With continous sending data to the host, it crashes in hours. And it depends on the size of TxQueueSiz. The bigger queue size, the long it lasts before it stops.
At first I suspect the windows driver is faulty. But if complied with CodeWarrior, it works without problems.
I guess this is a issue you have to look into.
I always appreciate your dedication to uTasker.
Chuck