[wdmaudiodev] IDmaChannel::SetBufferSize() questions

  • From: "Daniel E. Germann" <deg@xxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 21 Aug 2003 17:48:51 -0500

In the description of the IDmaChannel interface, the DDK help file says
that both the port driver and the miniport driver can use
SetBufferSize() to change the size of the DMA buffer.

It's pretty obvious that the port driver can do this any time between
creating the stream and starting the stream.  But when is it valid for
the miniport driver to change the buffer size?

Is the miniport driver allowed to change it when SetState() is called to
start the stream?  Or can the miniport driver just override
SetBufferSize() and modify the chosen buffer size each time it is set?
I just want to be sure that if the miniport driver changes the buffer
size, that the port driver won't use a cached value that it assumes
hasn't changed since it was set.  That shouldn't ever happen because the
port driver should always call BufferSize() to get the
currently-selected buffer size, right?

A related question is: will the port driver always call SetBufferSize()
with an exact multiple of the frame size returned by
SetNotificationFrequency()?  If so, the above question is probably moot.
But I didn't see anything in the DDK help file that clearly specifies
this will always be the case.  The description of
IMiniportWaveCyclic::SetNotificationFrequency says that the frame size
determines the size of the buffer needed for the input or output stream,
but that doesn't necessarily mean the size will always be an exact
multiple of the frame size.

Thank you!

-Dan

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

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.de/

Other related posts:

  • » [wdmaudiodev] IDmaChannel::SetBufferSize() questions