[wdmaudiodev] Streaming Mini driver & KSSTATE_PAUSE

  • From: "Neetu Sand" <neetu.freelist@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 14 Aug 2008 20:35:33 +0530

Hi All,

I have written a WDM audio driver using streaming mini driver model. Its
been working fine with almost all the applications. However when I was
playing around with SONAR on Vista SP1 in WASAPI mode, I noticed that when I
try to record driver hangs for 20-30 secs. I debugged the problem and saw
that driver receives :

KSSTATE_ACQUIRE - > KSSTATE_PAUSE -> SRb submitted to Read.

At this point driver simply queues the SRB in Read to be played when state
changes to KSSTATE_RUN.

On the other hand application waits for its completion just after queuing it
and doesn't do anything. Eventually driver sees a TimeOut. So essentially
SONAR sees a 20-30 sec of hang until a time out is received from driver's

From what I understand driver should start queuing SRBs as soon as it
receives PAUSE preceded by ACQUIRE. Also driver should put data from that
SRB on bus when it receives a state RUN.

Now after the "Read" call there is no other call in the driver from
application until Timeout is seen (no cancel or close request). So I am
wondering if there is any problem in driver or in teh application. Because
theoritically driver is reposnding correctly.

I would like to know from people here if they see any problem in the way
driver behaves or if anyone has any experience with WASAPI client and
recording. This also applies to AVstream drivers.

Also does anyone know of any other WASAPI client that I can use for testing?

Thanks, Neetu.

Other related posts:

  • » [wdmaudiodev] Streaming Mini driver & KSSTATE_PAUSE