[wdmaudiodev] Re: sAPO must be real-time compatible

  • From: "Andrew Sha......" <universalkludge@xxxxxxxxxxx>
  • To: wdmaudiodev wdmaudiodev <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 9 Jul 2010 17:18:55 -0500

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.

Other related posts: