I want to take live mic data from sysvad fake microphone…
But don’t you see how ridiculous that statement is? SYSVAD has NOTHING to do with your live microphones. It is not involved with your real hardware in any way, neither on the mic side nor on the speaker side. It is a completely separate path. The topology is complicated, and if you don’t understand it, you’ll never be able to implement it.
Let me describe a typical scenario that people commonly want. Let’s say you think you have the World’s Greatest echo cancellation process. You want to do that processing in a user-mode app, even though there are better ways to do it. Let’s say Skype is your target.
In that case, you would have your processing application attach to the real microphone and the real speakers, just like a normal audio application. Then, you would have Skype attach to your fake microphone and your fake speakers. You would then modify SYSVAD so that the speaker accepts audio data and stores it in a circular buffer. You would modify SYSVAD so that the microphone feeds data from another circular buffer. You would modify SYSVAD so that the processing application can supply data to the SYSVAD mic buffer, and read data from the SYSVAD speaker buffer.
So, once things get rolling, Skype sends data to the SYSVAD fake speaker. The processing app reads that data using a back-door ioctl. The processing app also reads the live microphone data from the system’s real microphone. It mixes the mic data from Skype’s speaker data using your World’s Greatest process. The processed speaker data is then written to the real speakers for the user to hear. The processed microphone data is written back to SYSVAD’s fake microphone using a back-door ioctl. Skype then reads the microphone data from the SYSVAD buffer.
I ought to be charging you for this, because I just did your system design for you, and it had apparently not occurred to you yet. Notice that what I described is not necessarily easy. SYSVAD is big and complicated, and it can be difficult to figure out how much you can strip out. I’ve done a couple of projects like this, and after starting with SYSVAD, I threw it out and went back to the MSVAD sample from Windows 7. It has everything one needs and is much easier to understand.