Entschuldigung für die späte Antwort. Ich war ein paar Wochen auf Montage und hatte keinen Internetzugang.
Zitat von
himitsu:
Was passiert wohl, wenn du versuchst eine
schreibgeschützte CD mit
Schreibrechten zu öffnen
Meiner Ansicht nach wird nicht die schreibgeschützte CD sondern das Gerät geöffnet. Falls der Benutzer keine Schreibrechte bzw in diesem Fall keine Brennrechte besitzt, erhält er auch kein gültiges
Handle. Des weiteren sind für einige Funktionen wie im vorliegenden Fall Schreibrechte erforderlich. Deshalb arbeitet zum Beispiel VCDEasy mit SPTI nur unter Administratorkonten.
Zitat von
himitsu:
Mal nachgesehen, ob die Sektoren wirklich 4096 Byte groß sind?
Diese Größe bezieht sich auf die Nutzdaten von zwei Datensektoren. Ist aber eher unwichtig, weil der Source funktioniert.
FILE_FLAG_NO_BUFFERING werde ich mal versuchen,
Zitat von
OldGrumpy:
... Und weil in deiner Funktion oben (function ReadCDAudioSector) am Anfang mit CB_CDROMSECTOR gearbeitet wird, vermute ich mal dass da mit 2048 statt 2352 bzw. 2336 (je nach Trackmode) gerechnet wird - Der Lesezugriff schlägt dann auf die eine oder andere Art fehl.
Die Sektoren sind auf jeder CD gleich groß und unterscheiden sich lediglich im Aufbau. 2048, 2352 und 2336 sind dabei jeweils die Größe der Nutzdaten. AudioCD zum Beispiel:
http://de.wikipedia.org/wiki/Audio-CD
In allen Sourcen, welche ich fand, wurde bei der Positionierung mit der Größe der Nutzdaten von Datensektoren gerechnet. Anschließend wird der Typ des Sektors eingestellt und die tatsächliche Größe der Nutzdaten gelesen.