AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte kleiner ProgrammCheck (Festplatten auslesen)
Thema durchsuchen
Ansicht
Themen-Optionen

kleiner ProgrammCheck (Festplatten auslesen)

Ein Thema von himitsu · begonnen am 10. Jul 2006 · letzter Beitrag vom 5. Jun 2007
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von himitsu
himitsu Online
Registriert seit: 11. Okt 2003
So, jetzt kann ich auch mal editieren ^^

Da sich das Progrämmchen wohl noch 'ne ganze Weile bis zum ersten "richtigen" Relase braucht und um den Redefluß nicht zu stören werd' ich hier einfach mal versuchen auf den letzen "aktuell/wichtigen" Beitrag von mir zu verlinken und von dort dann nochmal 'nen Direktlink zum Download (welcher ab jetzt hier zu finden sein wird.



Beitrag #47: http://www.delphipraxis.net/internal...=596793#596793
Download v13.08.06 09:36: http://www.delphipraxis.net/download.php?id=20621


================================================== =========

Moin ihr's,

ich suche ein paar Freiwillige, welche mal bitte nachgucken, was von meinem Programmchen ausgespuckt wird.

Ideal wäre es, wenn sich darunter auch noch ein Paar mit RAID 0 befinden.
(also 2, oder mehrere Platten zu 'nem großen logischen Laufwerk verdunden)

Vorallem interessiert mich dabei was in Extents und bei HiddenSectors steht (bei den Logical Disks).
Und falls wer offentsichliche Fehler in den angezeigten Werten findet, wäre ein Hinweis nicht schlecht.

Hiddensectors sollte sich derzeit nicht allzuweit weg vom zweiten Wert im ersten ExtentsEintrag befinden (vermutlich maximal um 100 kleiner ... wobei HiddenSectors wahrscheinlich bei den Meisten 63 sein wird)


Dat Programm macht natürlich nüschts schlimmes ... es ließt halt nur die Festplatten-/PartitionsInfos aus.
Es braucht AdminRechte, da es sich ein Handle auf die Festplatten holen muß ... kann aber auch von 'nem NichtAdminKonto gestartet werden (dann gibt es Bescheid und läßt sich Adminrechte geben, du mußt dafür nur die Daten eingeben und auf OK klicken)

Also nochmal kurz und knapp ... es werden nirgends Daten gespeichert, verändert und/oder verschickt.


*schonmadankendverneig* himi
Angehängte Dateien
Dateityp: exe datarescue_725.exe (559,5 KB, 341x aufgerufen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
 
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#21
  Alt 21. Jul 2006, 13:49
Zitat von static_cast:
Das System ist Win2k mit *nachguck* SP4
OK, hab grad nochmal nachgeguckt...
Zitat von MSDN:
Requires Windows Vista or Windows XP.
Muß mal sehn, ob ich das abkapseln und irgendwie anders lösen werd' ._.
  Mit Zitat antworten Zitat
Go2EITS

 
Delphi 7 Personal
 
#22
  Alt 22. Jul 2006, 07:04
@himitsu
ich habe auch Windows2000 SP4 mit allen Hotfixes.
Aber kein Absturz mit der kernel32

@Static_cast:
Welchen kernel32.dll hast Du denn?
Ich habe unter c:\WINNT\system32 eine Kernel.dll mit 751KB vom 03.06.2005
  Mit Zitat antworten Zitat
runger
 
#23
  Alt 22. Jul 2006, 09:24
Hi

ist dein Sourcecode ein Geheimnis? Bitte häng ihn an deine exe.

rainer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#24
  Alt 22. Jul 2006, 12:33
@Go2EITS: ist schon OK, ich hab eh noch eine weitere Funktion gefunden, welche erst seit XP vorhanden sein soll (laut PSDK/MSDN) und bis ich dafür 'nen Ersatz hab, dauert es bestimmt noch etwas (muß dafür halt "vieles" über Umwege selber machen).

Na ja ... es ist schon ein Wunder, dat es überhaupt läuft ... weil eigentlich gibt es soooo schon Funktionen, welche erst in Vista eingeführt werden

@runger: im Moment würde das eh nicht viel helfen ... ich sehe da ja gerade mal so durch ... die Units sind mehr Chaotisch geordnet (deren Inhalt) und es gibt nicht einen einzigen Kommentar (bis auf einen mit den 2 Leuten/Firmen, von denen ich Codes verwendet hab.


[add]
Also dat S.M.A.R.T für die Ferstplattennamen/Seriennummer ist drin aund läuft ja anscheinend recht zuverlässig .. mit dem WMI kämpfe ich noch ... hab da zwar 'ne nette "Klasse" für gefunden, allerdings ist die ja mächtig groß (ist halt och für alles mögliche ausgelegt und nicht nur für das, was ich benötige) ... na ja, bis jetzt hab ich den QuellCode für's WMI von knapp 32 KB auf unter 10 KB reduziert und es geht noch ä bissl so weiter ^^
  Mit Zitat antworten Zitat
static_cast
 
#25
  Alt 22. Jul 2006, 13:07
Zitat von Go2EITS:
@Static_cast:
Welchen kernel32.dll hast Du denn?
Ich habe unter c:\WINNT\system32 eine Kernel.dll mit 751KB vom 03.06.2005
Das kann ich jetzt leider nicht mehr beantwroten, hatte das gestern auf der Arbeit getestet, nu hab ich auch Urlaub und hier ist weit und breit kein Win2k in sicht
Daniel M.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#26
  Alt 31. Jul 2006, 14:02
Zitat von static_cast:
Das kann ich jetzt leider nicht mehr beantwroten, hatte das gestern auf der Arbeit getestet, nu hab ich auch Urlaub und hier ist weit und breit kein Win2k in sicht
Komisch ist es ja schon, weil angeblich diese Funktion erst seit XP existiert (aber vielleicht gab's die ja schon vorher mal, so als versteckte API )



Erstmal hab ich inzwischen einiges umgestellt und erweitert (hoffe es läuft immernoch alles)
und dann hatte ich mich noch zu 'nem RAID-Testlauf überredet.



Da ich jetzt teilweise bis zu 3 Quellen für ein und den selben Wert abfrage, dauert es jetzt ein bissl länger (vorallem das WMI is ja nicht gerade schnell und das eine Sleep(500), zur Sicherheit, nachdem ich einen Rescan des IDE/SCSI-Busses veranlaßt habe, tut och noch so einiges, da es bei jeder Platte auftitt ._.), also gibt's nun 'nen Statusfenster wärenddessen.

Dann hoffe ich mal, daß jetzt endlich "alle" Informationen/Namen richtig angezeigt werden.
(hab sogar mal vorübergehend die beiden Buttons (unten rechts) mit 'ner Funktion belegt )

Die Infos zu den einzelnen Partitionen (Physical Drives) gibt's immernoch nicht ... konnte mich noch nicht entscheiden welche und wie ich die Werte darstelle. (es wurde aber zumindestens schonmal ein eigenes Panel dafür erstellt ^^)

Bei den Festplatten ist unter anderem das Accoustic Management hinzugekommen und auch schon funktionsfähig. (bis auf den Testlauf, aber das kläre ich in 'nem anderem Thread)
PS: obwohl mein "alte" Maxtor dieses unterstützt, auf 128 steht und wirklich recht leise läuft, läßt sie sich nicht auf Lauter stellen.
Da ich jetzt aber nicht schon beim Scannen testen will, ob sich das wirklich ändern läßt, gibt es est beim Versuch dieses zu verstellen die entsprechende Fehlermeldung.


Anschlüsse:
Bei den IDE-Geräten scheint Port dem IDE-Controler und TargetID dem Anschluß (0=First Master, 1=First Slave, 2=Second Master und 3=Second Slave) zu entsprechen?

RAID's:
siehe Fotoserie im Anhang

Da ich ja "nur" bei den Treibern und Windows nachfrage (wie man sich direkt ans BIOS wendet, weiß ich ja nicht), sehe ich auch nur das, was man mir sagt und bei Hardware-RAIDs wird der RAID als eine "Festplatte" angezeigt und nicht jede Platte einzeln.

Die Software-RAIDs (hier das von Windows ... hoffe bei anderen ist es ähnlich) werden die Platten von den Treibern einzeln angegeben, und erst dann macht Windows eine "logische" Platte daraus.
Also theoretisch könnte man bei den Software-RAIDs auch die Platten einzeln untersuchen ... und was noch praktisch ist: man kann auch den ungenutzen Platz verwenden, welches bei meinem RAID-Controler nicht möglich ist (wenn es überhaupt irgendein bezahlbarer RAID-Controler kann ... k.A.).

Beim Software RAID müssen allerdings die Platten als dynamische Plättchen eingebunden sein und bestehen somit nur aus einer großen Partition (der Dynamischen).
Was aber für ein RAID-System vorliegt wird da nicht gesagt ... bis jetzt könnte ich höchstens aus Größe der Logischen Disk und den dazugehörigen DiskExtents heraus vermuten, was und ob es einer ist (ob z.B. kein RAID, RAID 0, oder RAID 1 ... bei Sonderformen wird's schwierig).


Ach ja, immernoch ab WinXP.




in den RAIDs haben sich folgende Plättchen vergnügt:
Hardware-RAID: Seagate ST31276A und Maxtor 4K040H2
Software-RAID: Seagate ST31276A und Maxtor 6V250F0

Und wen es interessiert ... der einzige (bis jetzt) Zugriff auf irgendwelche Daten auf den Platten geschieht beim Test im Accoustic Management:
Delphi-Quellcode:
M := TAcousticManagementTestMessage.Create(Self);
Try
  SetText(M.Label2, PhysicalDrives[Di].VolumeName);
  M.Show;
  i2 := (PhysicalDrives[Di].DiskSize div PhysicalDrives[Di].BytesPerSector) div $7FFFFFFF;
  If i2 <= 0 Then i2 := 1;
  i := (PhysicalDrives[Di].DiskSize div PhysicalDrives[Di].BytesPerSector) div i2;
  SetLength(R, PhysicalDrives[Di].BytesPerSector);
  i3 := 0; i4 := 0;
  Ts := GetTickCount;
  T := Ts;
  Repeat
    Inc(i3);
    Pos.QuadPart := Int64(PhysicalDrives[Di].BytesPerSector) * (i2 * Random(i));
    SetFilePointer(Dh, Pos.LowPart, @Pos.HighPart, FILE_BEGIN);
    If ReadFile(Dh, R[0], PhysicalDrives[Di].BytesPerSector, W, nil) Then Inc(i4, W);
    If LongInt(T - GetTickCount) <= 0 Then Begin
      SetText(M.Label4, IntToStr(i3));
      SetText(M.Label6, IntToStr(i4 shr 10) + ' KB');
      T := 15 - Integer((GetTickCount - Ts) div 1000);
      If Integer(T) <= 0 Then M.Tag := 1;
      S := 'Cancel (' + IntToStr(T) + ')';
      If GetText(M.Button4) <> S Then SetText(M.Button4, S);
      Application.ProcessMessages;
      T := GetTickCount + 150;
    End;
  Until M.Tag > 0;
  SetText(M.Button4, 'Close');
  Repeat
    Sleep(50);
    Application.ProcessMessages;
  Until M.Tag > 1;
Finally
  M.Free;
End;
Und wie man sieht, kann aus "Sicherheitsgründen" die Platte auch nicht all zulange belastet werden ... ich will ja nicht, daß den Leseköpfen schwindlig wird

[edit] DL entfernt

Download v01.08.06 8:13: http://www.delphipraxis.net/download.php?id=20621
Angehängte Dateien
Dateityp: zip fotoserie_146.zip (625,6 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

 
Delphi 2007 Professional
 
#27
  Alt 31. Jul 2006, 14:26
Da hast mal ein Screenie, mit Raid 0. Wenn ih irgend eine Partition anklicke, dann ist rechts dann alles leer, gilt auch für die normale USB-Platte. Die einzlenen Platten allerdings tauchen nicht mehr auf und somit sind auch keine Infos darüber verfügbar, wie SerNr oder sonst was...

Das Fenster sollte man ruhig in der Grösse verändern könnne, oder mach es einfach grösser, Physical Drives ist meistens doch länger und man müsste nicht scrollen.
Miniaturansicht angehängter Grafiken
dp_194.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#28
  Alt 31. Jul 2006, 14:38
Hab's doch geschrieben ... ein eigenes "leeres" Fenster wurde den Partitionen bereits spendiert ... nur für den Inhalt dieses Fensters konnte ich mich noch nicht entscheiden, also was und wie ich es anzeige ._.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

 
Delphi 2007 Professional
 
#29
  Alt 31. Jul 2006, 14:44
Ja, hatte es überlesen, sry... :/

Die Infos der einzelnen Platten fndest du übrigens über SCSI- und RAID-Controller, nicht über das Raid an sich... Windows hat ja die Infos, schau mal im GM unter SCSI-Controller... da ist der prim. und sec. channel aufgeführt, da drinenn sind dann die einzelnen Platten drin...
  Mit Zitat antworten Zitat
Go2EITS

 
Delphi 7 Personal
 
#30
  Alt 31. Jul 2006, 15:24
Nun geht es bei mir auch nicht mehr!
Ich hoffe, Du bekommt es auch unter Windows2000 die Rescue.exe wieder zum Laufen.
XP ist auf meinem Rechner ca. 20% langsamer unter Windows2000. Und allein in Deutschland.
werden wohl über eine 1.000.000 Rechner noch Windows2000 installiert haben. Und wahrscheinlich 300-500 Mio. auf der ganzen Welt... Deine potienziellen Kunden
Ach ja. Es ist hier üblich, immer im ersten Beitrag die neuesten Dateien/Sourcen zur Verfügung zustellen und ein kleines Changelog zuschreiben. Hilft der Übersichtlichkeit und zeigt Deine Fortschritte, ohne sich im Threadbeitrag "durchwühlen" zu müssen.
Beste Grüße von G02EITS.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz