[wdmaudiodev] Re: KSEVENT_PINCAPS_FORMATCHANGE event and the PCEVENT_VERB_ADD

  • From: Nikku B <neetu.freelist@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 10 Sep 2013 15:10:23 +0530

Hi Matthew,

On windows 8.1 I am noticing that after raising event on on all pins, I get
calls for KSPROPERTY_TYPE_SET on all pins but I do not receive calls for
KSPROPERTY_TYPE_GET.

In KSPROPERTY_TYPE_SET, I receive request to set last selected sample rate
- driver sends STATUS_NO_MATCH to this. Still I do not see any
KSPROPERTY_TYPE_GET calls.

Why is this happening?

cheers,
Neetu


On Tue, Sep 3, 2013 at 9:45 PM, Matthew van Eerde <
Matthew.van.Eerde@xxxxxxxxxxxxx> wrote:

>  Raise the event for each pin that you want to be requeried.****
>
> ** **
>
> For example, suppose that Ch 1/2 Out, Ch 3/4 Out, and Ch 1/2 In are all at
> 44.1 kHz.****
>
> ** **
>
> Then the user goes into the Sound control panel and changes Ch 1/2 Out to
> 48 kHz.****
>
> ** **
>
> You should raise the event on Ch 3/4 Out and Ch 1/2 In. When Windows
> renegotiates the device format on those endpoints, insist on a 48 kHz
> format; decry any support for 48 kHz.****
>
> ** **
>
> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:
> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Jesko Quenzer
> *Sent:* Monday, August 26, 2013 12:47 AM
> *To:* wdmaudiodev@xxxxxxxxxxxxx
> *Subject:* [wdmaudiodev] KSEVENT_PINCAPS_FORMATCHANGE event and the
> PCEVENT_VERB_ADD****
>
> ** **
>
> Hi,****
>
>  ****
>
> I try to add the "Dynamic Format Change Support" which is documented in
> here:
> http://msdn.microsoft.com/en-us/library/windows/hardware/gg463055.aspx to
> my miniport driver.
> I was able to register the events to get calls to my
> EventHandlerFormatChange and to my PropertyHandlerPinProposeForma function
> (both taken from the document above). ****
>
>  ****
>
> I also see the KSPROPERTY_TYPE_SET and KSPROPERTY_TYPE_GET calls and
> everything seem to be OK.****
>
>  ****
>
> There are some things I'm missing or do not understand well:****
>
>  ****
>
> For example I have a device which provides Ch 1/2 and Ch 3/4 Out and Input
> 1/2 and I want to keep the sample rate settings  synchronised for all of
> them.
> So I guess I should get a KSPROPERTY_TYPE_GET for each device after I
> changed the sample rate for one of them to synchronise the others to the
> new "default" sample rate.
> Is this correct ?****
>
>  ****
>
> The problem is I never get this call. I only get a call to
> KSPROPERTY_TYPE_GET once when I open the device in the Windows CPL.****
>
>  ****
>
> There are two parts in the sample code I don't understand and are probably
> related:****
>
>  ****
>
> NTSTATUS CMiniportHelper::GenerateFormatChangeEvent()
> which calls:
> m_pPortEvents->GenerateEventList(...,...,...);****
>
>  ****
>
> where should I instantiate the pPortEvents and where do I call the
> GenerateFormatChangeEvent ?****
>
> The source code(which I didn't write by my self) calls once:****
>
> pPort->QueryInterface (IID_IPortEvents,  (PVOID *)&pPortEvents);****
>
> in my Adapter->StartDevice function. Should I keep this instance ?****
>
>  ****
>
> also  the "case PCEVENT_VERB_ADD:"  in the EventHandlerFormatChange is
> never called, only  "case PCEVENT_VERB_SUPPORT:" is called.****
>
>  ****
>
> Any suggestion what I'm doing wrong ?****
>
>  ****
>
> Another thing is how can I distinguish which pin is opened in the CPL ?***
> *
>
> Any idea ?****
>
>  ****
>
> Thanks and Regards,****
>

Other related posts: