Im Prinzip brauchst Du nur Adminrechte und den richtigen Devicenamen für den CreateFile-Aufruf. Bei USB-Devices ist zusätzlich noch darauf zu achten, dass der Puffer in den gelesen wird, page-aligned ist. Das erledigt man am einfachsten indem man sich den Speicher mittels VirtualAlloc() anfordert. Freigeben später dann mit VirtualFree() (beides in der
MSDN zu finden). Ich hatte irgendwann mal einen kleinen Dumper für meinen USB-Stick geschrieben, der macht im Prinzip genau das. Ich schau mal ob ich den Code noch finde...
CreateFile sollte man mit den Parametern für nur-lese-Zugriff und komplettes Sharing ausstatten, sonst schlägt der Aufruf aller Wahrscheinlichkeit nach fehl (weil auf der Platte im Betrieb halt etliche Files für exklusiven Zugriff geöffnet sind).
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet.
" (Henning Richter)