Re: Where is my KSSTATE_STOP notification?



On Oct 25, 7:07 pm, multiben <multi...@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
"marli...@xxxxxxxxx" wrote:
On Oct 24, 5:21 pm, multiben <multi...@xxxxxxxxxxxxxxxxxxxxxxxxx>
wrote:
Hi There,
My problem, in a nutshell, is:

When playing an audio file with Windows Media Player and the player is
stopped within 21 seconds from the end of the file, my miniport driver never
receives any KSSTATE notifications. The port driver just stays in KSSTATE_RUN
and keeps calling GetPosition forever.

Once I actually shutdown Windows Media Player, I finally get the PAUSE ->
ACQUIRE -> STOP.

If I stop 22 seconds or more before the end then everything works fine. No
matter what file I use, regardless of length, sample rate, bit rate or
channels, the result is always the same.

I am baffled! Does anyone have any ideas as to where I could look next?
Thanks, Ben

If I recall correctly, you will not receive the STOP until you return
all the IRPs. Check your queues for any outstanding IRPs.

I have IRP functions for IRP_MJ_DEVICE_CONTROL and IRP_MJ_PNP and as far as
I can tell there are no outstanding ones when the player is stopped, but I'm
not exactly sure how to check my queue (I'm not managing my own queue).

The GetPosition() function of my IDmaChannel derived class continues to get
called even though the player has stopped. Am I correct in assuming that this
function is being called in response to an IRP received from Direct Sound? If
so, can you tell me what IRP type it is?- Hide quoted text -

- Show quoted text -

Hi,

What driver model are you using? I am pretty sure you have a data IRP
outstanding somewhere...or your are not properly completing all your
data IRPS.
But, let me know what driver model you are using....

Is it WavePCI? Are you using the GetMappping() function to get
buffers? If so, are you sure you calling ReleaseMapping() for all
buffers? Also, are you sure your counter is properly indicating that
it has played all outstanding data? If not, the caller will think you
are still holding data. Oh, are you properly handling revoked mappings
if you are using WavePCI?

You are not getting the STOP because the caller thinks you are still
processing something...

.



Relevant Pages

  • Re: Where is my KSSTATE_STOP notification?
    ... The port driver just stays in KSSTATE_RUN ... Check your queues for any outstanding IRPs. ... I can tell there are no outstanding ones when the player is stopped, ... I am pretty sure you have a data IRP ...
    (microsoft.public.development.device.drivers)
  • Re: Where is my KSSTATE_STOP notification?
    ... The port driver just stays in KSSTATE_RUN ... Check your queues for any outstanding IRPs. ... I can tell there are no outstanding ones when the player is stopped, ... I am pretty sure you have a data IRP ...
    (microsoft.public.development.device.drivers)
  • Re: Where is my KSSTATE_STOP notification?
    ... The port driver just stays in KSSTATE_RUN ... Check your queues for any outstanding IRPs. ... I can tell there are no outstanding ones when the player is stopped, ... the caller will think you ...
    (microsoft.public.development.device.drivers)
  • Re: Where is my KSSTATE_STOP notification?
    ... The port driver just stays in KSSTATE_RUN ... Check your queues for any outstanding IRPs. ... I can tell there are no outstanding ones when the player is stopped, ... the caller will think you ...
    (microsoft.public.development.device.drivers)

Loading