[wdmaudiodev] Re: Need help in Wave Test

  • From: Gaurav Khuntale <gauravkhuntale@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 4 Feb 2014 11:17:07 +0530

Hi Tim,

As per my understanding, when IOCTL_KS_RESET_STATE request with value
KSRESET_BEGIN comes then pin goes to reset state and during this reset
state, new read/write requests on pin gets rejected until
IOCTL_KS_RESET_STATE request with value KSREST_END comes. Even if new
read/write request comes when pin in reset state then that requests fail
with STATUS_DEVICE_NOT_READY.

So first of all is my understanding correct ? If yes, then from the wave
test log file, it seems that its happening correctly as test sends
IOCTL_KS_RESET_STATE with value KSRESET_BEGIN value and after that it sends
IOCTL_KS_WRITE_STREAM request which is already failing with "device is not
ready" status. Wave test is not sending IOCTL_KS_RESET_STATE with value
KSRESET_END to cancel reset state of pin. Still i am not getting why there
is failure for test case "Standard Streaming\Rendering Pin Tests\Reset Pin
while streaming data". I am again giving logs below for reference,

Start Case: ID 16.26:1.5: 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 my above understanding makes sense?

Thanks.


On Tue, Feb 4, 2014 at 10:19 AM, Gaurav Khuntale
<gauravkhuntale@xxxxxxxxx>wrote:

> Hi Tim,
>
> Yes, i started with MSVAD sample. There are major modifications in sample
> code ( actually i haven't did this modifications, i am working on a driver
> code which was already half-written. It was already containing wave filter
> implementation and topology filter implementation. ).
>
> Also i have less understanding of driver connection with OS. I am learning
> it now. Thanks for the explanation of how IOCTL_KS_RESET_STATE works. So is
> there anything which i must do in SetState method which i may be missing?
>
> And i am returning IDMAChannel object from NewStream.
>
> Thanks.
>
>
>
>
> On Tue, Feb 4, 2014 at 1:06 AM, Tim Roberts <timr@xxxxxxxxx> wrote:
>
>>  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: