Hi all,
I’m trying to understand common buffer bus master DMA driver.
In DDK, Audio ac97(C:\WINDDK\2600.1106\src\wdm\audio\ac97) and
(C:\WINDDK\2600.1106\src\storage\fdc\fdc) driver are using
“AllocateCommonBuffer” function. So I assume that only these two drivers
are using common buffer DMA driver. I also read the art baker book. Which
gives very short intro to common buffer, also msdn documentaion doesn’t
give full explanation (or I’m not able to understand).
I’ve some questions (some ‘d be silly as I’m very confused at the momentJ)
–
1- Which sample should I read to understand common buffer bus master DMA
driver?
2- I see in above two examples that READ and WRITE irp not used. How user
program ‘ll send/recieve data to/from driver? How startIO routine and
dispatch is connected? Shall I use IoStartPacket? What is sequence of
functions getting called, when data travels from user program to device
and vise versa?
3- Is the dispatch routine between slave common buffer and bus master
common buffer same?
4- MS guys, I downloaded PCIDMA NT drivers sample from micosoft site. It
was very useful for understanding packet based bus master. README of this
sample says that it is for packet based bus master DMA. But this also uses
AllocateCommonBuffer in resource.c file. Is this using common buffer
method also by any chance?
Thanks in advance,
Sanjeev