FinishDataXfer() returns false when removing a USB thumbdrive in Windows 7 | Cypress Semiconductor
FinishDataXfer() returns false when removing a USB thumbdrive in Windows 7
Is anybody else experiencing this problem? It only happens in Windows 7. I tried it in Windows XP and could not reproduce there. Basically I have a C++ app that recieves streaming data from our firmware. In a separate thread I have a loop that calls BeginDataXfer() and when the event is signaled it calls FinishDataXfer(). Everything is working fine until a user inserts a thumbdrive to do other stuff and when he pulled it out I get this error from FinishDataXfer(). This happens 50% of the time, so I think it's a timing issue but I don't know how to work around it.
Here's my environment:
MS Visual Studio 2010
32-bit Windows 7 Professional,
Cypress driver 3.04.0002.00,
The chip we are using is the Cypress Chip CY7C68001-56PVC.
The application is as a high speed USB interface to the DSP processor.
Here's a code snippet within the thread:
case WAIT_OBJECT_0+2: //overlapped read operation done