![]() |
unverständliches Verhalten von ReadFile
Hallo zusammen,
ich bastele z.Zt. nebenbei an einer Möglichkeit eine CD-ROM zulesen. Dafür hab ich mich an einer Leseroutine für denm MBR bedient.
Delphi-Quellcode:
Wenn ich diesen code unter XP Prof/Vista home loslasse, dann wird der Zugriff auf C: mit dem Fehler 5 (Zugriff verweigert) belohnt, was ja zu erwarten ist. Das es unter XPProf beim Zugriff auf USB-Sticks eine 5 gibt, aber unter Vista alles problemlos funktioniert schiebe ich mal auf unterschiedliche Zugriffsrechte.
var
nBytesRead , fHandle : Cardinal; errc : dword; vbuffer : array of byte; begin fHandle := CreateFile(PChar('\\.\'+lw), // ...PHYSICALDRIVE0 <--<< first Harddisk ( Primary Master ) GENERIC_READ, // ...read only FILE_SHARE_WRITE+FILE_SHARE_WRITE, // ...Wichtig, nicht das es Probleme gibt nil, OPEN_EXISTING, // ...ist klar warum 0, 0); if fHandle = INVALID_HANDLE_VALUE then begin errc:=GetLastError; ShowMessage('CreateFile - Error: Invalid Handle'#13#10'LastErrcode:'+inttostr(errc)+' '+syserrorMessage(errc)); exit; end; { secsize ist mit 512 vorbelegt } SetLength(vBuffer,secsize); if not ReadFile(fHandle,vBuffer[0],secsize,nBytesRead,nil) then ..... Beim Zugriff auf die CD-ROM (daten sind vorhanden und lesbar!) erhalte ich folgende Ergebnisse: XPProf Audio-CD Fehler: 0 GeleseneBytes: 0 Daten-CD Fehler: 0 GeleseneBytes: 512 Vista Home in beiden Fällen Fehler 87 (ungültiger Parameter) zum einen frage ich mich warum auf einmal ein "ungültiger Parameter" auftaucht, (und welcher bitte ist es??) zum anderen, warum werden von einer Daten-CD auch Daten gelesen und von einer Audio-CD nicht? Habt Ihr eine Erklärung für mich? Gruß K-H |
Re: unverständliches Verhalten von ReadFile
Zitat:
|
Re: unverständliches Verhalten von ReadFile
Hallo Bernhard,
ein bitte was?? Aber interressante Idee muß ich im Hinterkopf behalten. Es geht aber vor allem auf die Zugriffe auf die CD-ROM (ist auf den Rechnern verschieden, E: und F:, darum hatte ich keine Laufwerksbuchstaben angegeben) Gruß K-H |
Re: unverständliches Verhalten von ReadFile
eine Audio-CD kann nicht einfach via ReadFile gelesen werden
sonst könnte sich ja jeder ein Audio-/Video-Rippingprogramm schreiben Zitat:
Und CDs/DVDs haben eine andere Sektorgröße. |
Re: unverständliches Verhalten von ReadFile
Was soll denn FILE_SHARE_WRITE+FILE_SHARE_WRITE werden?
|
Re: unverständliches Verhalten von ReadFile
Ja, das ist für Festplatten wichtig, aber bei CDs sollte es egal sein, die sind ja sowieso nur Read-Only.
PS: auf Festplatten zuzugreifen wird ab Vista schwierig (in XP zwar auch, aber da ist man oftmals ja eh schon ADMIN) Und, wie gesagt, so geht es eben nur mit der aktuellen "Session" bei Multisessiondatenträgern und mit Daten-CDs/DVDs. für alles andere muß man sozusagen direkt den IDE-Controler ansprechen |
Re: unverständliches Verhalten von ReadFile
Zitat:
|
Re: unverständliches Verhalten von ReadFile
@ Bernhard
Entschuldige! das Vista-Manifest! In meiner Vorstellung ist alles was bunt ist und runde Ecken hat ganz viel bäh. Darum bin ich der Meinung das ich so etwas nicht benötige. Oder irre ich da? Vielen dank für die Antworten! Zitat:
(mit DOS und ASPI ging das noch *grummel*) Zitat:
Ach ja unter Vista hab ich es auch als Admin versucht : immer noch die 87. Gruß K-H P.s. das brauch ich um an den CD-Text zu kommen, warum noch einmal erfassen was es schon gibt. |
Re: unverständliches Verhalten von ReadFile
Ich glaube Apollonius wollte darauf hinaus, dass er statt:
Delphi-Quellcode:
wahrscheinlich
FILE_SHARE_WRITE+FILE_SHARE_WRITE
Delphi-Quellcode:
meint/will/braucht.
FILE_SHARE_READ or FILE_SHARE_WRITE
|
Re: unverständliches Verhalten von ReadFile
OK
'll try it! Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz