Archived from groups: microsoft.public.windowsxp.device_driver.dev (More info?)
My goal is to directly transfer the data in off-screen surface inside video
card memory to another PCI card without the relay of system memory.
I have the device driver source code of the PCI card, but I don't have the
same thing for the video card. After getting the virtual address of the
surface, I passed it to the driver. The driver used MmGetPhysicalAddress()
to convert the virtual address to physical address and passed it back to the
application program. In addition, it also manipulated the surface buffer
with IoAllocateMdl() and MmProbeAndLockpage().
With physical address of the surface buffer, I trigged DMA transfer from
video memory to our PCI card. Unfortunately, the data I got in the card was
not what I expected but all 0xFF.
I'm wondering if Windows supports direct data transfer (DMA) from one device
to another? If OK, how should I correctly move data?
You are about to answer a thread that has been inactive for more than 6 months. If you still wish to proceed, please ensure that your posting is original and does not duplicate or overlap any prior responses to this thread.