Hello Guys, I am working on following failure in wave test, 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 ?. Thanks. On Fri, Jan 31, 2014 at 12:07 PM, Gaurav Khuntale <gauravkhuntale@xxxxxxxxx>wrote: > Hello, > > Any guess what could be the reason behind above failures ? > > Thanks in advance. > > > On Thu, Jan 30, 2014 at 6:37 PM, Gaurav Khuntale <gauravkhuntale@xxxxxxxxx > > wrote: > >> I am seeing following failures, >> >> >> 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. >> >> 2) Standard Streaming\Rendering Pin Tests\Streaming buffer from different >> threads >> FAIL: Position (1600) is less than the amount of data streamed (3200). >> >> 3) Standard Streaming\Rendering Pin Tests\Calling get position from the >> different thread >> >> 4) Standard Streaming\Rendering Pin Tests\Streaming with 2 different >> instance of the pin. >> Wave Format used for instantiation: >> Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE >> Format.nChannels = 2 >> Format.nSamplesPerSec = 22050 >> Format.nAvgBytesPerSec = 88200 >> Format.nBlockAlign = 4 >> Format.wBitsPerSample = 16 >> Format.cbSize = 22 >> wValidBitsPerSample = 16 >> dwChannelMask = KSAUDIO_SPEAKER_STEREO (0x3) >> SubFormat = >> KSDATAFORMAT_SUBTYPE_PCM{00000001-0000-0010-8000-00AA00389B71} >> >> >> CKsPin::Instantiate. Failed to instantiate KSPIN_DATAFLOW_IN pin! >> KsCreatePin returned = 0x00000057 >> [ GetLastError() returned 87 (0x57) - The parameter is incorrect. >> ]. >> PreparePin: Unable to instantiate pin. >> >> Also yes, i do see a NewStream call during the test run. >> >> Thanks. >> >> >> >> On Thu, Jan 30, 2014 at 6:18 PM, Matthew van Eerde < >> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote: >> >>> OK, good. >>> >>> >>> >>> For clarity, in the situation where current count is initially 0, what >>> failure do you see? Also, do you see a NewStream() call in that situation? >>> >>> >>> >>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto: >>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale >>> *Sent:* Thursday, January 30, 2014 4:33 AM >>> >>> *To:* wdmaudiodev@xxxxxxxxxxxxx >>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test >>> >>> >>> >>> Yes, I was opening a stream before running wave test by playing a song >>> from WMP. So after i tried running wave test without first opening a >>> stream. But still there are failures which i mentioned in last mail. >>> >>> I just saw on KS studio and found that it reports Current Count = 0 and >>> Possible Count = 1 for KSPROPERTY_PIN_CINSTANCES. >>> >>> Should i attach my wave test log file? >>> >>> Thanks. >>> >>> >>> >>> On Thu, Jan 30, 2014 at 5:41 PM, Matthew van Eerde < >>> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote: >>> >>> > So i removed this handling and allowed mutliple streams to be >>> created >>> >>> >>> >>> Um, don't do that. >>> >>> >>> >>> The test only attempts to open one stream at a time. Is there already a >>> stream open when the test begins? If so, see if you can figure out what is >>> opening the stream and stop it. (This could be KS Studio, or maybe >>> something is playing a sound, or maybe something else is going on.) >>> >>> >>> >>> Typically the instance limit (in this case, 1) is enforced above the >>> miniport, so the fact that you even have the opportunity to return >>> STATUS_INVALID_DEVICE_REQUEST is indicative of a problem. What does KS >>> Studio report for KSPROPERTY_PIN_CINSTANCES on this pin factory, both >>> "current" and "possible"? >>> >>> >>> >>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto: >>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale >>> *Sent:* Wednesday, January 29, 2014 10:44 PM >>> >>> >>> *To:* wdmaudiodev@xxxxxxxxxxxxx >>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test >>> >>> >>> >>> Hi Matthew, >>> >>> Yes, i am seeing a NewStream() call when test case fails. Also i got the >>> reason why Pin was not getting instantiated. Its because, my driver >>> currently supports only one stream instantiation at a time.If there is try >>> of creating multiple streams then my driver is returning >>> STATUS_INVALID_DEVICE_REQUEST status from NewStream() function. So i >>> removed this handling and allowed mutliple streams to be created and test >>> case "Data Intersection Test\Render Streaming\Check Supported Formats" got >>> Pass. But now i am getting more failures in following test cases: >>> >>> 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. >>> >>> 2) Standard Streaming\Rendering Pin Tests\Streaming buffer from >>> different threads >>> FAIL: Position (1600) is less than the amount of data streamed (3200). >>> >>> 3) Standard Streaming\Rendering Pin Tests\Calling get position from the >>> different thread >>> >>> 4) Standard Streaming\Rendering Pin Tests\Streaming with 2 different >>> instance of the pin. >>> Wave Format used for instantiation: >>> Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE >>> Format.nChannels = 2 >>> Format.nSamplesPerSec = 22050 >>> Format.nAvgBytesPerSec = 88200 >>> Format.nBlockAlign = 4 >>> Format.wBitsPerSample = 16 >>> Format.cbSize = 22 >>> wValidBitsPerSample = 16 >>> dwChannelMask = KSAUDIO_SPEAKER_STEREO (0x3) >>> SubFormat = >>> KSDATAFORMAT_SUBTYPE_PCM{00000001-0000-0010-8000-00AA00389B71} >>> >>> CKsPin::Instantiate. Failed to instantiate KSPIN_DATAFLOW_IN pin! >>> KsCreatePin returned = 0x00000057 >>> [ GetLastError() returned 87 (0x57) - The parameter is incorrect. >>> ]. >>> PreparePin: Unable to instantiate pin. >>> >>> Can you please help me in above failures ? What could be the reasons >>> behind these failures ? Here i don't understand one thing is that, when i >>> doesn't allow multiple streams to be instantiated in my driver then above >>> mentioned test cases got skipped while wave test and if i allow multiple >>> streams then i got failure for this test cases. >>> >>> Regarding your another question, my driver supports WAVE_FORMAT_PCM with >>> maximum channels 2, max sample rate 64000, min sample rate 4000. >>> >>> Thanks. >>> >>> >>> >>> >>> >>> On Wed, Jan 29, 2014 at 10:30 PM, Matthew van Eerde < >>> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote: >>> >>> Yes, pin instantiations are only attempted on the wave filter. The >>> topology filter typically does not have any pin factories that support >>> meaningful pin instantiation. >>> >>> >>> >>> When the test case fails, are you seeing a NewStream() call? >>> >>> >>> >>> What formats do you support? >>> >>> >>> >>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto: >>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale >>> *Sent:* Wednesday, January 29, 2014 2:33 AM >>> *To:* wdmaudiodev@xxxxxxxxxxxxx >>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test >>> >>> >>> >>> Hi Tim, >>> >>> As you said, i tried instantiating my driver with ksstudio. I selected >>> my wave filter from KS Studio and successfully instantiated pin on wave >>> filter. >>> >>> Is failure which i mentioned is related to wave filter only ? >>> >>> Also i am getting one more failure in same test case mentioned above >>> saying: >>> CKsPin::Instantiate. Failed to instantiate KSPIN_DATAFLOW_IN pin! >>> KsCreatePin returned = 0x00000001 >>> [ GetLastError() returned 1 (0x1) - Incorrect function. ]. >>> FAIL: KSPROPERTY_PIN_DATAINTERSECTION Succeeded, Pin Creation Failed >>> FAIL: Pin does not support WLP required sample frequencies of: >>> - 44100 Hz >>> - or 48000 Hz >>> >>> But my driver supports above mentioned sample frequencies, still i don't >>> understand why this failure ? >>> >>> Thanks. >>> >>> >>> >>> On Wed, Jan 29, 2014 at 9:42 AM, Gaurav Khuntale < >>> gauravkhuntale@xxxxxxxxx> wrote: >>> >>> Hi Tim, >>> >>> No, i haven't tried using ksstudio to instantiate my driver. To be >>> frank, i am not aware of this. What exactly will happen when i instantiate >>> driver with ksstudio and how to do that ( if possible just give me some >>> reference link or document ) ? >>> >>> Thanks. >>> >>> >>> >>> On Wed, Jan 29, 2014 at 6:18 AM, Tim Roberts <timr@xxxxxxxxx> wrote: >>> >>> Gaurav Khuntale wrote: >>> > >>> > >>> > I am working on a audio driver which is based on wavecyclic. My driver >>> > is failing Wave test with following errors, >>> > >>> > 1) FAIL : Data Intersection Test\Render Streaming\Check Supported >>> Formats >>> > CKsPin::Instantiate. Failed to instantiate KSPIN_DATAFLOW_IN >>> pin! >>> > KsCreatePin returned = 0x00000001 >>> > [ GetLastError() returned 1 (0x1) - Incorrect function. ]. >>> > FAIL: KSPROPERTY_PIN_DATAINTERSECTION Succeeded, Pin Creation >>> > Failed. >>> > >>> > 2) Compliance Tests\UAA-Compliance Test >>> > 1.FAIL: The Device driver is not one of the UAA Compliant types >>> > (HDAudio,USB Audio 1.0, USB Audio 2.0, Bluetooth)! >>> > >>> > Regarding first failure, i tried to search about that but failed to >>> > understand what exactly Failure is and reason behind the failure. My >>> > primary understanding says, this failure is because my driver is not >>> > supporting KSPROPERTY_PIN_DATAINTERSECTION property. Is this right ? >>> > Can anyone please help me here ? >>> >>> No. Read the error: KSPROPERTY_PIN_DATAINTERSECTION succeeded. Pin >>> creation failed. You're going to need to put some debug prints into >>> your driver to chase down which function is failing. Have you tried >>> using ksstudio to instantiate your driver? Does it work in graphedt? >>> >>> >>> >>> > Regarding second failure, as my driver is virtual driver, how can i >>> > pass this failure ? Should my driver must be from one of the category >>> > listed in failure ? >>> >>> You can't WHQL a virtual audio driver. >>> >>> -- >>> Tim Roberts, timr@xxxxxxxxx >>> Providenza & Boekelheide, Inc. >>> >>> ****************** >>> >>> 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/ >>> >>> >>> >>> >>> >>> >>> >>> >>> >> >> >