CD lesen
-
Hallo,
weiß hier jemand, ob oder wie ich eine CD Byte für Byte auslesen kann, also nicht über Dateinamen usw. sondern jedes Byte der Reihe nach wie es auf der CD steht.
-
Auf der CD stehen aber nur in Pits codierte Bits.

Du kannst bei NT-Ableger Windowsversionen mit dem Befehl CreateFile eine "Datei" als "physical disk" öffnen.
-
Wenn dus es über CreateFile machst, musst dann ein MMC Read command an das drive schicken, geht mit DeviceIOcontrol.
Bessere wahl: du verwendest ein der X ASPI implementationen die den ganzen MMC krahm für dich machen.
-
Danke für die Tips. Ich habs mal mit CreateFile/ReadFile probiert und es funktioniert perfekt. Wisst ihr zufällig auch ob man so auf die CD brennen kann(WriteFile)?
-
Hmm.. mit write file hab ich das noch nie gesehen (sag obs geht falls du nen versuch startest), aber wenn du win xp kannst die Image Mastering API nehmen:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/image_mastering_api.aspFalls du kein XP hast, MMC spec (Multimedia Commands - das ist das commands-set mit denen du laufwerke/brenner steuern kannst) besorgen, nen 'kleinen' wrapper schreiber der die wichtigesten commandos kapselt (WRITE, READ FORMAT CAPACITIES, BLANK, MODE SELECT, .... ) und per DeviceIoControl ans laufwerk schickt und feritg
:p 
-
weiß hier jemand, ob oder wie ich eine CD Byte für Byte auslesen kann
Wisst ihr zufällig auch ob man so auf die CD brennen kann(WriteFile)?
Warum diese ganze Arbeit? Nimm das Programm mit diesem hüpschen Schaaf Symbol!
-
Welches Schaaf?
An CMatt: Mit WriteFile hats nicht funktioniert. Wie funktioniert das mit mmc und ioControl ans Laufwerk schicken und so? Ich kenn mich da nicht so besonders gut aus.
-
CloneDVD.. ignorier den einfach.
MMC ist sein SCSI Befehlssatz, der speziel für optische laufwerke entwicklet wurde. Die spec. dafür gibts glaub ich für ~20$ als pdf. Was sein dein program jetzt machen muss, ist diese MMC kommandos zu gerenerien und das laufwerk zu schicken. Ist aber für nen 'n00b' erst mal ne Menge arbeit sich da einzuarbeiten.
Alternative wäre ein sdk, wie http://www.nero.com/de/SDK_API.html (muss nero installiert sein). Gibt in dem sdk auch ein PacketWriting interface, mit dem kannst du ein medium sector-weise lesen / schreiben.
-
Auf meiner Homepage ist ein Tool namens DiskViewer das auch CD's auslesen kann.
http://members.inode.at/anton.zechner/az/index.html
-
Danke für den DiskViewer. Jetzt kann ich prüfen ob das stimmt was mein Programm macht oder machen soll.
-
Ich hab jetzt das NeroSDK, aber immer wenn ich ReadSectorsUnBuffered oder Buffered aus der PacketWriting API aufrufe schmiert mein Programm ab. Weißt du was ich da alles laden und initialisieren muss?
-
NeroAPIGlueConnect und NeroInit aufgerufen? Der zeiger der von NeroCreateBlockReaderInterface zurückkommt ist ok? Der buffer den du übergeben hast ist ok?
-
Wenn das einfach ein leerer void * buffer sein soll müsste alles stimmen.
-
Tobsbeam schrieb:
Wenn das einfach ein leerer void * buffer sein soll müsste alles stimmen.
Mit leer meinst du aber keinen NULL-pointer oder?
Kannst mir den code auch schicken wenns net hinhaut, dann seh ich ihn mir bei nächster gelgenheit an (cmatt at c-plusplus.net - at durch @ erstetzen, will nur das irgend ein spam-bot an die addresse kommt
)