Hi,
I am new to Device Drivers. I am trying to replace WavePci in
place of WaveCyclic in MSVAD. I am understanding WavePci
implementation from sample AC'97. But since it is a real hardware
driver with use of DMA,register etc.. So how can I avoid these DMA
related code. like
1. It requires AdapterObject. which is created by
DmaChannel->GetAdapterObject(); and DmaChannel is created by Port->
NewMasterDmaChannel(); (see driver\wavepciminiport.cpp)
2. In RevokeMappings() implementation we need index
of stBDList. (see driver\wavepcistream.cpp)
// Get current index
nCurrentIndex = Wave->AdapterCommon->
ReadBMControlRegister8 (m_ulBDAddr + X_CIV);
I couldn't figure out from where this register
gets value.i.e. who writes currentIndex on this register ? And If I
want to do it without actual register how can I do it ?

I also have question on device powerstate used in AC'97 sample. In
PowerDevice2/3 case why MoveBDList is used ? Since I cannot add this
implementation in my virtual driver will affect on functionality of
the driver.

Thanks in Advance.

Re: WavePci DmaChannel problem for MSVAD. by Tim

Tim
Wed Sep 03 00:19:38 CDT 2008

swapnil <swap.kamble@gmail.com> wrote:
>
> I am new to Device Drivers. I am trying to replace WavePci in
>place of WaveCyclic in MSVAD.

You are barking up the wrong tree here. WavePci only makes sense for PCI
devices with DMA. Since you do not have hardware, WavePci is senseless.
Use WaveCyclic.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.