[wdmaudiodev] Re: Need help in Wave Test

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 3 Feb 2014 11:36:49 -0800

Gaurav Khuntale wrote:
>
> I am working on following failure in wave test,

What sample did you start with?  Was it msvad?


> 1) Standard Streaming\Rendering Pin Tests\Reset Pin while streaming data
>      KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_PAUSE; want
> it to be in state KSSTATE_RUN
>     Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_RUN
>     Position reported before issuing KSRESET_BEGIN = 121 bytes
>     KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_RUN; want it
> to be in state KSSTATE_RUN
>     Resetting Pin state: IOCTL_KS_RESET_STATE (KSRESET_BEGIN)
>     Position reported after issuing KSRESET_BEGIN = 0 bytes
>     Submitting IOCTL_KS_WRITE_STREAM IRP ...
>     GetLastError did not return ERROR_IO_PENDING even though the pin
> is paused
>    
>      [ GetLastError() returned 21 (0x15) - The device is not ready.   ].
>     FAIL: Failed WriteData(Render)/ReadData(Capture) to see if pin
> position is moving or not.
>
> Is there a need to implement notification callback of
> IOCTL_KS_RESET_STATE, IOCTL_KS_WRITE_STREAM IRP so that my test cases
> may get pass, if yes then can anyone please give me some reference for
> the implementation of these notification callback ? What exactly
> happens when request of IOCTL_KS_WRITE_STREAM IRP comes ?.

It seems like you don't really have a good understanding of how your
driver is connected.  The port class driver handles all of those ioctls
for you, and turns them into method calls in your driver. 
IOCTL_KS_RESET_STATE becomes a call to
IMiniportWaveCyclicStream::SetState, which you are already handling.

How much have you modified the sample code?  Is it possible you aren't
returning the IDmaChannel object from NewStream?

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: