[wdmaudiodev] Strange stream creation sequences in Win10

  • From: Eugene Muzychenko <reg.wad@xxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 6 Jun 2018 20:04:52 +0700

Several last years, I see strange stream creation sequences in Win10
following each installation of my virtual audio devices.

After each installation, Audiosrv issues series of similar actions:

- Sends KSPROPERTY_PIN_PROPOSEDATAFORMAT request with a particular
audio format.

- Property handler returns STATUS_SUCCESS.

- Audiosrv sends KsCreatePin request.

- For obtained pin instance, changes KS state to Acquire/Pause, then back
to Stop.

- Closes pin instance.

Such sequence is repeated hundreds or even thousands times, with
format parameters varied within the statically supported data range
(returned by KSPROPERTY_PIN_DATARANGES).

In parallel, AudioEndpointBuilder sends many
KSPROPERTY_PIN_DATAINTERSECTION requests but they all are completed by
PortCls with STATUS_NO_MATCH, miniport's DataRangeIntersection
handler is never called.

BTW, I never saw DataRangeIntersection called for wave miniport since
WinXP.

Looks like audio subsystem tries to determine particular supported
formats.

Why KSPROPERTY_PIN_PROPOSEDATAFORMAT is not enough?

KSPROPERTY_PIN_CONSTRAINEDDATARANGES would be even more correct but
the system never uses it.

Is there any reasons for using such strange technique? Creating
hundreds/thousands of streams just to check supported
formats, is an extremely ugly method.

******************

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/

Other related posts:

  • » [wdmaudiodev] Strange stream creation sequences in Win10 - Eugene Muzychenko