Thank you 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 Date: Fri, 9 Jul 2010 14:45:45 -0700 From: timr@xxxxxxxxx To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: sAPO must be real-time compatible Andrew Sha...... wrote: "All methods that are members of real-time interfaces must be implemented as non-blocking. They should not block, use paged memory, or call any blocking system routines. Note that most system routines are blocking" This is most probably means that any kind of WaitXXX function should NOT be called explicitly or implicitly; so DeviceIoControl should be fine to use providing that a called driver completes a request synchronously Do I miss / misinterpret something? You can only call a Wait function if you specify a timeout of 0, which means it checks and returns immediately telling you whether the event has completed. If you need to call DeviceIoControl, you should use overlapped I/O so that you can continue processing and handle the results later. On the other hand, if you need to process the data and the processing is going to take time, what alternative do you have? ;) -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc. _________________________________________________________________ The New Busy is not the old busy. Search, chat and e-mail from your inbox. http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3