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/