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/