[wdmaudiodev] Re: WavePCI issue with multiple processors

  • From: Ken Cooper <Ken.Cooper@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 27 Mar 2007 17:41:29 -0700

Eugene,

The WavePCI port does guarantee that pin/stream states properly transition 
between:

        KSSTATE_STOP <-> KSSTATE_ACQUIRE <-> KSSTATE_PAUSE <-> KSSTATE_RUN

Unfortunately, this code only guarantees these transitions on commanded state 
changes.  What it doesn't protect against is a client that opens a pin handle, 
transitions the pin from stop to acquire to pause, and then closes the pin 
handle without returning the pin to stop.  The port pin destructor code 
'should' protect against this by transitioning the miniport pin to 
KSSTATE_STOP, thereby giving the miniport an opportunity to properly shut down 
and free its resources.

Since you mentioned that this was an intermittent repro it may be the result of 
a timing or multi-thread issue between stopping the stream and closing the pin 
handle.  Without debugging I can't say for sure.

Ken

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Eugene Muzychenko
Sent: Tuesday, March 27, 2007 1:26 AM
To: Ken Cooper
Subject: [wdmaudiodev] Re: WavePCI issue with multiple processors

Hello Ken,

> I don't have the code in front of me at the moment but I'll take a
> closer look tomorrow at the portcls and WDK sample code

Could you please take a look to a portcls code that implements stream
state transitions?

Testing my driver under Vista RTM, I noticed that sometimes
a rendering IMiniportWavePciStream object is released (a destructor is called)
when the stream is in KSSTATE_PAUSE. It happens only if I open an
endpoint properties, select "Advanced" tab and click "Test" button,
not every time but very often, and never happens on common audio
processing, when DirectSound/MME are used.

I already wrote about this:

//www.freelists.org/archives/wdmaudiodev/01-2007/msg00112.html

Regards,
Eugene

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: