Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SMART-Werte lesen (https://www.delphipraxis.net/72013-smart-werte-lesen.html)

Muetze1 10. Jul 2006 22:51

Re: SMART-Werte lesen
 
Kann es sein, dass du eine Mischung von Jumpersettings hast? z.B. die WDC nicht von Single auf Master umgesteckt oder das die alte am Slave vllt. als CS (cable select) gejumpert ist?

Jo, der zweite hätte nicht funktionieren dürfen.

Daniel G 10. Jul 2006 22:55

Re: SMART-Werte lesen
 
Mom, ich schau' mal nach.... Die alte (Seagate) ist definitiv Slave.... Und die Western Digital definitiv Master... Und hängen am selben IDE - Port...

//Edit: Ich könnte spaßeshalber auch noch eine dritte Festplatte an den zweiten IDE - Port hängen. Auch so'n Uraltteil...

Sir Rufo 10. Jul 2006 23:59

Re: SMART-Werte lesen
 
Hi folks,

hier mal ein netter Link, wo es zu SMART alles gibt, was das Herz begehrt und eine ganze Menge mehr

Magenta Systems

cu

Oliver

Muetze1 11. Jul 2006 09:52

Re: SMART-Werte lesen
 
Der Link hat zum einen nur eine Übersetzung der Strukturen wie wir sie auch haben aus der gleichen C Quelle con Microsoft und die Ermittlung der SMART Werte löst er genauso wie wir mit dem gleichen übersetzten Code. Diese Unit ist aber sehr komisch. Zum einen sind die Formatierungen ein heilloses durcheinander und zum anderen wurden Dinge falsch übersetzt. Anscheinend testet er seine eigenen Procedure nicht mal. Da werden Formatierungszeichen von C im String gelassen (z.B. der doppelte \ um einen zu bekommen...) etc.

Das einzige wären die Texte bzw. Bedeutungen der SMART Attribute Tags die er noch zusätzlich hat, wobei aber hier auch wieder das schon oben angesprochene Problem ist: jeder Hersteller kocht sein eigenes Süppchen ab ATA v4.

Sir Rufo 11. Jul 2006 10:10

Re: SMART-Werte lesen
 
Jepp, das mag schon sein, allerdings ist der Zugriff darauf, ob es sich hier um einen SMART-Fehler handelt relativ einfach.
Ausserdem kann man mit dieser Unit einfach die Temperatur der Festplatten auslesen.

Ich habe mit dieser Unit (Magenta) eine SMART-Überwachung geschrieben, die dann automatisch eine mail an mich versendet, wenn ein Wert in einen Fehler läuft.

Dieses läuft auf ca. 150 Rechnern (fast immer unterschiedliche Platten) und das ganz hervorragend.
Kann also gar nicht so schlecht sein :mrgreen:

cu

Oliver

Muetze1 11. Jul 2006 11:56

Re: SMART-Werte lesen
 
Zitat:

Zitat von Sir Rufo
Ausserdem kann man mit dieser Unit einfach die Temperatur der Festplatten auslesen.

Das geht mit der Übersetzung von uns genauso - nur das Problem ist, das diese Information überhaupt nicht gesichert ist. Ich kann dir Festplatten nennen, da steht in dem Feld keine Temperatur drinne sondern etwas ganz anderes und da funktioniert unser wie auch dein Code nicht mehr ordentlich. Schon allein durch die Änderung des Statuses der Attribut Tags auf vendor specific in ATA-4 wird in nächster Zeit seine Auswirkungen haben und es wird zu Inkompatibilitäten kommen. Aktuell wird an der Version 8 gebastelt und die meisten P-ATA Geräte implementieren den Standard nach 4 z.T. 5.

Zitat:

Zitat von Sir Rufo
Dieses läuft auf ca. 150 Rechnern (fast immer unterschiedliche Platten) und das ganz hervorragend.
Kann also gar nicht so schlecht sein :mrgreen:

Mit meiner Einschätzung habe ich mich nicht auf den Teil der SMART Erkennung beschränkt. Einen C Quellcode in Delphi zu portieren ist keine Leistung und somit sollte da auch keine Probleme auftauchen und die gleichen Ergebnisse rauskommen. Ich habe mich vielmehr auf ein Gesamtbild der Unit bezogen, welche nunmal direkte Fehler enthält. Die Proceduren die diese Fehler enthalten werden von dir anscheinend nicht genutzt, somit treten sie nicht auf.

Und zu den unterschiedlichen Platten: Siehe oben bzw. den Rest des Threads zuvor.

himitsu 11. Jul 2006 12:22

Re: SMART-Werte lesen
 
also bei mir werden definitiv bei PhysicalDriveX auch die S-ATA-Platten mit aufgeführt.

Bei mir also derzeit:
PhysicalDrive0: S-ATA 0
PhysicalDrive1: S-ATA 1
PhysicalDrive2: IDE 0 - Master

Hab jetzt rein zufällig an jedem Port nur ein Gerät hängen
PS: bei CdromX werden auch noch die virtuellen CD-Laufwerke mit aufgeführt,
und bei mir ist demnach nicht "Bit 0 = Primary Master", sonder 3 = Primary Master
(ich kann heute abend ja mal an IDE 2 - Slave mal wieder das Wechellaufwerk klemmen ... aber ich bin mir da jetzt mal relativ sicher, daß dieses dann als PhysicalDrive3 und nicht PhysicalDrive5, wie nach deiner Zählung und unter Inbetrachtnahme, daß bei mir die S-ATAs zuerst aufgeführt werden.

Und wie gesagt, theoretisch hab ich Platz für bis zu 8 Festplatten und mit noch mehr IDE-Erweiterungskarten noch viel mehr ... irgendwo müssen diese dann doch auch noch mit aufgezählt werden, also mit 4 ist es da noch lange nicht getan?
(Es gibt ja auch schon lange Mainboards mit 2 IDE-Kontrolern, also 4 Anschlüssen a 8 Geräte ... die 4 kann man also nicht nur mit Erweiterungskarten "überlasten")


Also bin ich jetzt einfach mal davon ausgegangen, daß dort "alle" Festplatten von 0 aufwärts (so wie sie von Windows gefunden werden und nicht nach 'nem bestimmten Muster aufgezählt werden.


Und OK, ich bin ja och gerade erst noch beim Reinfützen in die Materie, aber so wie ich das sehe ist dort eindeutig nicht nur IDE drin.

Allerginst konnte ich bißher och noch keine eindeutigen Informationen zu diesen "Namen" finden.
Ich weiß bisher nur, das es für derartige Zugriffe PhysicalDriveX, CdromX und angeblich auch ScsiX geben soll (hab aber keine SCSI-Geräte und so'nen Bus erst recht nicht, also konnte es nicht testen).



Ich schau mir aber gern mal die genauen Fehlermeldungen an, also ob der sowas wie "Gerät nicht vorhanden", oder "ungültiger Name" ab PhysicalDrive4 von sich gibt.



Ach ja, das mit dem System neuverkabeln:
\\.\PhysicalDriveX und \\.\X: sind doch eh nicht das Selbe ... Ersteres sind Laufwerke und das andere Partitionen(auf Laufwerken), virtuelle Datenträger Speicherkarten, oder was man halt sonst noch damit verknüpft.

Aber \\.\X: isr nicht eindeutig ... \\?\Volume{GUID} hingegen schon ;)

Daniel G 11. Jul 2006 12:34

Re: SMART-Werte lesen
 
Zitat:

Zitat von himitsu
Aber \\.\X: isr nicht eindeutig ... \\?\Volume{GUID} hingegen schon ;)

Aber für unser Problem ist das doch eh irrelevant, oder?

Auch wenn deine S-ATA - Platten gelistet werden, S.M.A.R.T. - Werte dürftest du nicht bekommen.

@Topic: Ich hab' eben mal eine dritte Platte an den IDE2 - Port gehängt. (Ergo: 2 Platten an IDE1, eine Platte an IDE2).

Interessanterweise, wenn ich das Handle auf "PhysicalDrive0" oder "PhysicalDrive1" erstelle, läuft die Schleife zweimal durch. Erstelle ich es auf "PhysicalDrive2", läuft die Schleife einmal durch.

(Frühe) Schlussfolgerung:
Unter XP zeigt die Funktion, ob an dem IDE - Port, wo das Laufwerk hängt für das das Handle erzeugt wurde, sich noch ein weiteres Laufwerk befindet. Ist dies der Fall, muss für das andere IDE - Laufwerk ein weiteres Handle erzeugt werden, um an die Werte zu kommen. Ergo könnte man "PhysicalDriveX" auch einfach bis 3 hochzählen (mit Vorbehalt). Es käme auf dasselbe hinaus.

Wär' schön, wenn diese Behauptung irgendwer mit mehreren Festplatten (IDE) stützen könnte.

himitsu 11. Jul 2006 12:42

Re: SMART-Werte lesen
 
Ich werd's mal testen ... hab ja derzeit mehr S-ATA, als IDE dran.

Interessant wird es allerdings, wenn ich die Platten dann noch als RAID 1 zusammenschalte ... also über's BIOS und nicht per Windows ... bin schon gespannt was mir dann Windows dazu sagt :stupid:

Muetze1 11. Jul 2006 19:19

Re: SMART-Werte lesen
 
Moin!

Zitat:

Zitat von himitsu
also bei mir werden definitiv bei PhysicalDriveX auch die S-ATA-Platten mit aufgeführt.

Dann hast du deinen S-ATA Controller im P-ATA Modus aktiviert. Dieser belegt dann den primary und secondary Port für IDE Geräte und emuliert ein P-ATA Interface. Dein echter P-ATA Controller kommt dann danach auf dem 3. und 4. Portadresse.

Zitat:

Zitat von himitsu
Hab jetzt rein zufällig an jedem Port nur ein Gerät hängen

S-ATA kann nur ein Device pro Port. Wenn du also einen P-ATA Emulationsmodus bei deinem Controller an hast, dann wird immer nur ein Gerät am Master des IDE Ports gefunden, und zwar das angeschlossene Gerät.

Zitat:

Zitat von himitsu
und bei mir ist demnach nicht "Bit 0 = Primary Master", sonder 3 = Primary Master

Ich habe vorhin _nicht_ von den Nummern des \\.\PhysicalDriveX Identifiers gesprochen sondern von der bIDEDeviceMap der Struktur von DFP_GET_VERSION.
\\.\PhysicalDriveX zählt immer die gefundenen Hardwaregeräte in aufsteigenden Reihenfolge.

Zitat:

Zitat von himitsu
Also bin ich jetzt einfach mal davon ausgegangen, daß dort "alle" Festplatten von 0 aufwärts (so wie sie von Windows gefunden werden und nicht nach 'nem bestimmten Muster aufgezählt werden.

Die ersten 8 Geräte werden nacheinander gesucht und das in der Reihenfolge der IDE Ports, wenn entsprechend diese vorhanden sind und entsprechend auch mindestens ein Standardtreiber dafür installiert wurde.

Zitat:

Zitat von himitsu
Ich weiß bisher nur, das es für derartige Zugriffe PhysicalDriveX, CdromX und angeblich auch ScsiX geben soll (hab aber keine SCSI-Geräte und so'nen Bus erst recht nicht, also konnte es nicht testen).

Hä? Installier dir einen SCSI Sub Treiber z.B: den von Adaptec. Manche Brennerprogramme benötigen ein SCSI Interface und das SCSI Interface bietet auch Zugriff auf die gefundenen ATA/ATAPI Geräte. Du musst kein SCSI System besitzen.

/EDIT: also \\.\CdromX funktioniert bei mir nicht...

[edit=Christian Seehase]Quote-Tags korrigiert. Mfg, Christian Seehase[/edit] /EDIT: Sorry, nicht mehr kontrolliert...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.
Seite 3 von 6     123 45     Letzte »    

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 by Thomas Breitkreuz