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<mailto: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> [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>] On Behalf Of Gaurav Khuntale Sent: Wednesday, January 29, 2014 10:44 PM To: wdmaudiodev@xxxxxxxxxxxxx<mailto: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<mailto: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> [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>] On Behalf Of Gaurav Khuntale Sent: Wednesday, January 29, 2014 2:33 AM To: wdmaudiodev@xxxxxxxxxxxxx<mailto: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<mailto: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<mailto: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<mailto:timr@xxxxxxxxx> Providenza & Boekelheide, Inc. ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx> Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx<mailto:wdmaudiodev-request@xxxxxxxxxxxxx>?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx<mailto:wdmaudiodev-request@xxxxxxxxxxxxx>?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx<mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx> URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/