Andrew Sha...... wrote: > > It looks like DeviceIoControl w/ overlapped I/O + > GetOverlappedResult(../bWait=FALSE) /is the way to go and upon > ERROR_IO_INCOMPLETE returned just fail processing ERROR_IO_PENDING is that one that means "the driver is still working on this". Your behavior depends on what you need. If you are confident that your driver will always complete requests immediately, then that might be an OK plan. But in other cases, you might just leave the request running and return so the audio graph continues to run. At some later point (in a separate thread maybe, or just at the next data packet), you can check to see if your outstanding I/O has completed yet. There are lots of ways to handle it. The key is that the audio engine is a real-time process, and if you block it, audio will suffer. -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc.