Autor Thema: Windows Diskettenlaufwerksbezeichnung  (Gelesen 7751 mal)

bscreator

  • Gast
Gespeichert
« am: 19. November 2010, 14:07 »
Hallo,

ich schreib grad in C ein Programm, mit dem man den Bootsektor beschreiben kann. Das Programm funktioniert soweit, nur hab ich mit den MSDN-Funktionen für den Laufwerkszugriff ein paar Probleme:


hFile = CreateFile(myFile,GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);  //Diskettenlaufwerk zum Schreiben öffnen
    if (hFile != INVALID_HANDLE_VALUE)
    {
bErrorFlag = WriteFile(hFile,DataBuffer,512,&dwBytesWritten,NULL); //Schreibe 512 Chars auf Diskettenlaufwerk
Dieser Code funktioniert NUR, wenn in myFile "\\.\a:" eingetragen ist. Mein Professor meint jedoch, dass diese Bezeichnung veraltet ist und ich lieber die "neue" Bezeichnung "\\\\.\\PhysicalDrive0" verwenden sollte. Allerdings funktioniert der Code mit der neuen Bezeichnung nicht.

Könnt ihr mir helfen, dass der Code mit der neuen Bezeichnung "\\\\.\\PhysicalDrive0" funktioniert ?

Vielen Dank,
bscreator

Programm Noob

  • Gast
Gespeichert
« Antwort #1 am: 19. November 2010, 14:52 »
von der "neuen Bezeichnung" habe ich bisher nie etwas gehört. wenn es mit \\.\a: geht, dann mach es doch einfach damit.

EDIT: Hab gerade gegoogelt. \\.\\PhysicalDrive0 gibt es. mit zwei statt vier strichen.
« Letzte Änderung: 19. November 2010, 14:54 von PNoob »

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #2 am: 19. November 2010, 15:45 »
lol, lass das bleiben: \\.\PHYSICALDRIVE0 ist die erste Festplatte. :-D

Programm Noob

  • Gast
Gespeichert
« Antwort #3 am: 19. November 2010, 16:09 »
XanClic: das darfst du ihm doch nicht sagen. Wenn er wissen will wie das mit PHYSICALDRIVE0 gehen tut, dann sagen wirs ihm.

Im übrigen das es zwei statt 4 Striche sein müssen hat der erste Eintrag bei google gesagt. suche nach "\\\\.\\PhysicalDrive0".

Nur als kleine Anmerkung nebenbei "Hier sind Fragen und Diskussionen zu Programmiersprachen, Compilern, Emulatoren, Versionskontrollsystemen und sonstigem Handwerkszeug im Bezug auf Lowlevel-Entwicklung richtig aufgehoben". Das Offtopic Forum hätte besser gepasst. und ansonsten c-pluslpus.de

PNoob

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #4 am: 19. November 2010, 16:19 »
Hä? Er darf es ihm nicht sagen und wenn er wissen will es es "gehen tut" dann sagen wir's ihm?

Und das mit den tollen Strichen liegt logischerweise daran, dass man in C ein Backslash escapen muss..
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

XanClic

  • Beiträge: 261
    • Profil anzeigen
    • github
Gespeichert
« Antwort #5 am: 19. November 2010, 16:22 »
XanClic: das darfst du ihm doch nicht sagen. Wenn er wissen will wie das mit PHYSICALDRIVE0 gehen tut, dann sagen wirs ihm.
Dann lies mal richtig. Im Code stehen nämlich auch Kommentare. Und die beziehen sich eindeutig auf das Diskettenlaufwerk; das heißt, der Code wird mit PHYSICALDRIVE0 nicht das tun, was in den Kommentaren steht, ergo, funktioniert (semantisch) nicht.

bscreator

  • Gast
Gespeichert
« Antwort #6 am: 20. November 2010, 14:51 »
Sorry,
richtig muss es heißen : "\\.\PHYSICALDRIVE0".

Vielleicht als kleine Anmerkung:
Ich mein natürlich den Zugriff auf das Diskettenlaufwerk. Wenn "\\.\PhysicalDrive0" die erste Festplatte bezeichnet, lass ich das lieber sein.

Zitat
XanClic: Dann lies mal richtig. Im Code stehen nämlich auch Kommentare. Und die beziehen sich eindeutig auf das Diskettenlaufwerk
Dafür bin ich dir dankbar.
 

 

Einloggen