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.