![]() |
Unterstützt ein Laufwerk SMART?
Ich versuche gerade mit einem Tipp von
![]()
Delphi-Quellcode:
Leider weiß ich nicht, wieviele PhysicalDrives in dem Rechner stecken. Wenn ich nämlich \\.\PhysicalDrive1 anstatt von \\.\PhysicalDrive0 schreibe, erhalte ich keinen Fehler sondern nur sinnlosen Speichermüll (ist ein CD-Rom, hat also kein Smart). Wie kann ich denn herausbekommen, ob ein PhysicalDrivex Smart unterstützt?
type
TSmartData = array[0..527] of Byte; { .... } procedure GetSmartData(var Data: TSmartData); var hdrive: Cardinal; dwBytesReturned: DWORD; ipar: array[0..31] of Byte; opar: TSmartData; begin ipar[0] := 0; ipar[1] := $02; ipar[2] := 0; ipar[3] := 0; ipar[4] := $d0; ipar[5] := $01; ipar[6] := $01; ipar[7] := $4f; ipar[8] := $c2; ipar[9] := $a0; ipar[10] := $b0; ipar[11] := 0; ipar[12] := 0; ipar[13] := 0; ipar[14] := 0; ipar[15] := 0; ipar[16] := $8c; ipar[17] := $fd; ipar[18] := $14; ipar[19] := 0; ipar[20] := 0; ipar[21] := $02; ipar[22] := 0; ipar[23] := 0; ipar[24] := $03; ipar[25] := 0; ipar[26] := 0; ipar[27] := 0; ipar[28] := $03; ipar[29] := 0; ipar[30] := 0; ipar[31] := 0; // Get first harddrive hdrive := CreateFile(PChar('\\.\PhysicalDrive0'), 3221225472, 3, nil, 3, 0, 0); DeviceIoControl(hdrive, $0007C088, @ipar, 32, @opar, 528, dwBytesReturned, nil); CloseHandle(hdrive); Data := opar; end; |
Re: Unterstützt ein Laufwerk SMART?
Schon mal daran gedacht, die Rückgabewerte von CreateFile und DeviceIoControl zu überprüfen?
|
Re: Unterstützt ein Laufwerk SMART?
1 Jahr hab' ich versucht, diesen blöden SmartApp - Beispiel - C - Code von Microsoft nach Delphi zu portieren.... Und jetzt steht hier sowas... ICH KÖNNTE HEULEN!!! :wall: :wall:
Du brauchst ja eh nur für 4 Laufwerke prüfen... Mehr gehen ja nicht.... Prüfe den Rückgabewert von CreateFile einfach auf INVALID_HANDLE_VALUE... Das sollte bei Read - Only Medien passieren... |
Re: Unterstützt ein Laufwerk SMART?
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal eine Unit aus meiner SysInfo Anwendung. Du brauchst usätzlich noch die JEDI WinAPI Übersetzungen von den Jedis.
|
Re: Unterstützt ein Laufwerk SMART?
Ich würde allerdings den Timer deutlich höher stellen.... So eine niedrige Refresh - Rate bringt's nicht wirklich....
|
Re: Unterstützt ein Laufwerk SMART?
Danke Luckie für die Unit. Funktioniert wunderbar.
Wie ist das, darf ich die auch kommerziell nutzen (vllt mache ich in Zukunft mal was mit Smart in einem Programm von mir)? Reicht es wenn ich dich in die Credits schreibe? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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