DMA for creating a Memory dump of a Windows Computer

Hey, is it possible to use the Arduino Zero DMA controller to create a memory dump of a Windows machine? (Reading out the whole RAM)

If yes how would I connect my Arduino to the PC so it could create this memory dump?

No.

1 Like

It is far easier to use the DMA controller in your PC, it has several channels.

How would I use my build in DMA Controller? Couldn’t find any useful informations to that online, neither on Microsoft’s WDK documentation nor UEFI EDK2

It's been a long time since I did any Windows kernel work, but ISTR that there is an ioctl call to do a memory dump to disk.

https://www.google.com/search?client=firefox-b-1-d&q=windows+kernel+driver+dma

...entire first page.

Look at the DM8237, If my memory is correct it has a 64K limit on a single transfer. There are other devices available. Here is a link: Direct Memory Access (DMA) Controller in Computer Architecture - GeeksforGeeks

In your PC I assume, Bus Mastering is supported. This eliminated the need for a central DMA (Direct Memory Access) controller and allows individual devices to perform the needed bus mastering themselves. Your DMA device is able to perform DMA operations without needing help from a centralized DMA controller. This should get you started. Have you figured out where you are going to transfer the data to?

To connect I assume you will make a buffer card that plugs into a free memory slot. The signals are very fast so great care must be taken.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.