Jan M wrote: > Hi Tim, > >> If so, how do you know it's repeating? Are you spewing any debug >> information to the debugger? > > Yes. It repeats calls to CSaveData::WriteData() with calls to > CSaveData::FileWrite() when the buffer is full. > Under the debugger the output file (normally 41k bytes) grows to > hundreds of K. > >> If you send a sound to the normal audio output device and then break in >> the debugger, you will hear the last bufferful repeated forever. This >> is just the way sound cards work. They have to be told to stop playing, >> and while you're in the debugger, it can't process interrupts to know >> that playing should stop. It's quite normal. As soon as you step or >> run in the debugger, it will start handling interrupts again and move >> on to the next sample. > > MSVAD simply writes audio output to a file. The driver does not send > anything to a sound card. > I believe it simulates hardware interrupts with timers. > > The debugger is not stopping at a breakpoint, just outputting trace > messages: > ... > MSVAD: [CSaveData::WriteData ulByteCount=440] > MSVAD: [CSaveData::WriteData ulByteCount=440] > MSVAD: [CMiniportWaveCyclicStreamMSVAD::SetState] > MSVAD: KSSTATE_RUN > MSVAD: [CSaveData::WriteData ulByteCount=444] > MSVAD: [CSaveData::WriteData ulByteCount=440] > . > . repeated 35 times > . > MSVAD: [CSaveData::SaveFrame] > > The CSaveData::WriteData and CSaveData::SaveFrame repeat ad nauseam. It's probably a timeout issue, as you surmised. Writing to the debugger takes a surprisingly long time, and clocks get confused. It is very tricky to use debug messages in a real-time path, unless you use something like DebugView instead of windbg. Best you can do is reduce or eliminate the debug messages that happen in the real-time path. > I can step the driver (MSVAD) - not the free build OS. If you can tell > me how to step the free build nt module (other than the disassembly, > i.e. with C/C++ source code) I would be grateful. You don't EVER get source code for the operating system, even with a checked build. You need to know assembler in order to debug drivers. -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc. ****************** 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/