[wdmaudiodev] SetNotificationFreq() has no effect on CopyFrom() ???

  • From: "Don Bell" <0dbell@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 4 Jun 2007 11:54:38 -0500

In a driver that I have written based on the MSVAD (simple) sample, I
use the inherited IMiniportWaveCyclicStream::SetNotificationFreq() to
set the interval to 20ms.

This indeed sets correctly the interval in which the inherited
IDmaChannel::CopyFrom(), supplying exactly FrameSize bytes to read
every such call.

However, IDmaChannel::CopyFrom() arrives at a higher "rate" (up to 5
such calls every 20ms), with the ByteCount parameter being anywhere
between 16 and FrameSize (15 < ByteCount < FrameSize + 1).

As long as I understand that this behavior is consistent and in line
with Microsoft's design, I can deal with that. However, I was
surprised to discover this lack of symmetry between CopyTo and
CopyFrom (or "render" and "capture").

Could you please confirm that my observation is correct? i.e. there is
no way to set PortCls in such a way that IDmaChannel::CopyFrom()'s
third parameter (IN ULONG  ByteCount) will always be caled with a
fixed value?

Also, some insight as to why this is implemented this way would very
appreciated. I am curious to understand the rational behind this.

Thanks,
Don
******************

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: