[wdmaudiodev] Problem about GetMapping() / ReleaseMapping() in WavePCI

  • From: "pritesh gajjar" <gajjar.pritesh@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 14 Oct 2008 16:30:59 +0530

Hello All,
              I have implemented WavePCI in my driver. My mapping calls of
GetMapping () and ReleaseMapping () are working fine. Following are thing
which I have done.

1. I created DmaChannel through  NewMasterDmaChannel(), this works fine
gives DmaChannel object. Passed as out parameter to NewStream ().
2. Allocated tables through AllocateCommonBuffer() call.
3. Created a timer object , DPC object which calls DPC after every
interval(e.g. 10ms) and wrote a DPC in which I am calling Notify() of
4. Methods of  WavePCI interface are implemented one of them is Service ()
which is invoked after above Notfiy() call by PortCls.
5. This Service() gives call to ReleaseMapping()/GetMapping() methods saves
their out parameters in a table as ac'97 does.

   This is implemented as per MSDN documentation. Now the Driver runs
continuously and consumes so many CPU cycles, the system slows down. But if
I only obtain possible mappings in first GetMapping () call that is no
MappingAvailable () then it runs smoothly. But still I do not get any audio
only noise is produced. And one more thing I do get some value in VirtAddr
pointer of GetMapping () .
    I also tried with common table between Capture / Renderer streams, but
that didn't help. With IDmaChannel channel implementation also I tried, and
passed casted stream object through Newstream(), but that also didn't

   Is there something else also that in WavePCI it needs to be implemented.
If anyone has any suggestion about then please reply ?

Thanks and regards

Other related posts: