Hi,
A. mmdevapi fills the whole buffer once. B. mmdevapi continuously overwrites the circular buffer. I think A makes sense but really I don't know.
I suspect B
I realized that I don't need a microphone if I can trust IAC_CaptureClient's pu64QPCPosition output parameter: "the value of the performance counter at the time that the audio endpoint device recorded the device position of the first audio frame in the data packet."
Modifying the capture tests to trace that value shows that mmdevapi mostly implements behaviour A with a few quirks. Please visit bug #30147 for details.
Regards, Jörg Höhle