[wdmaudiodev] Re: Win2k driver issue

  • From: "Sam Tertzakian" <sam@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 18 Aug 2005 09:19:10 -0700

Hi, 

 

I have been able to partially answer my own question.(Regarding my XP 12.1
HCT certified driver failing with QCap.dll under Win2kSP4):

 

If I use SuggestAllocatorProperties() function from the
IID_IAMBufferNegotiation interface to allocate 1/2 second buffers in an
application that builds the graph before the capture filter is connected to
the render filter, then the problem goes away and the KSCATEGORY_AUDIO
filter is able to function properly. I am able to stop and restart and
GraphEdt never locks up.

 

I also noticed that when using CoolEdit (which was also failing under 2k),
if I make the buffers the minimum size of 1 second, then CoolEdit works.

 

And, I also noticed that SoundRecorder functions for slower sample rates
such as 22050.

 

So, given the above, I now have a work around for the app, but I wonder if
there is something I can do in the driver to correct this problem so that it
would not be necessary to use SuggestAllocatorProperties().

 

The above information surely must give a clue about why this problem is
happening in 2k and not XP.

 

  _____  

From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Sam Tertzakian
Sent: Monday, August 15, 2005 2:55 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Win2k driver issue

 

Hi, 

 

I have a WavePCI WHQL Certified under 12.1 HCT that works perfectly under XP
in all situations.

 

Under Win2k, however, I am seeing the following:

 

1.      Using the AUDIO_CAPTURE filter in GraphEdit does not work.
Specifically, I see three things that are bad: A. Only one call to
GetPosition() happens to my driver from PortCls; B. GetMapping() always
returns "no mapping available" and; C. When I press Stop in GraphEdt,
GraphEdt locks up and I must reboot. When I look in the kernel debugger, I
see that all threads in GraphEdit are "BLOCKED". I think that the threads
that are supposed call GetPosition and that are supposed return mappings to
my driver are blocked waiting for some (very important) event. I think that
(B) is caused by a lack of GetPosition() calls. 
2.      Using the "WDM Streaming Filter", everything is perfect as in XP.
3.      Using SoundRecorder (which uses WaveAPI) I see all the same
behaviour as in (1) above, except that I am able to stop the stream (which
is not moving) and close SoundRecorder properly.

 

I have made sure my driver is calling Notify() properly.not too often and
not too infrequently. There is no CPU overload issue. I am using Win2K SP4
with all the latest updates.

 

AUDIO_CAPTURE is created by QCap.dll which uses Wave API. Sound Recorder
uses Wave API. Those both fail in similar ways. "WDM Streaming Filter" uses
KxProxy. That works.

 

Of course, my driver has no idea whether KxProxy or QCap.dll is in play.the
same code paths happen. 

 

Has anybody seen such behavior have any idea what could be wrong.?

 

Thank you for your time.

 

 

****************** 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: