Lowlevel

Lowlevel => Softwareentwicklung => Thema gestartet von: bscreator am 19. November 2010, 14:07

Titel: Windows Diskettenlaufwerksbezeichnung
Beitrag von: bscreator 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
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: Programm Noob 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.
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: XanClic am 19. November 2010, 15:45
lol, lass das bleiben: \\.\PHYSICALDRIVE0 ist die erste Festplatte. :-D
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: Programm Noob 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
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: DerHartmut 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..
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: XanClic 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.
Titel: Re:Windows Diskettenlaufwerksbezeichnung
Beitrag von: bscreator 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.