Читаем SMART. Просто и
доступно.
Последнее время задают очень много вопросов о том, как прочитать серийный
номер винта. Но все ответы сводятся к
GetVolumeInformation('C:\',VolumeName,MAX_PATH,@VolumeSerialNo,... что не
имеет ни чего общего с заводским номером винта. Так же многие бы хотели
написать утиль для просмотра смарта винчестера, измерения его температуры. Но
Windows не позволяет напрямую лезть в порты и ДОСовский подход здесь
неуместен. Потребовалось и мне написать смотрелку SMART. При ближайшем поиске
удалось накапать следующие ссылки на microsoft.com
http://support.microsoft.com/download/support/mslfiles/SmartApp.exe
http://www.microsoft.com/hwdev/download/respec/iocltapi.rtf
Так же много полезного по смарту удалось найти на страничке Маврицина Михаила
http://pcjs.chat.ru
(спасибо ему огромное за то, что он пожелал поделится результатами своего
труда с общественностью)
Все эти данные были перечитаны и я сел портировать пример от MS с Visual C
под Delphi. Этот пример - почти полное повторение MS`овского, я только
немного расширил выводимую информацию и добавил несколько известных
атрибутов SMART. Пример выполнен в виде консольного приложения.
Пример испытывался под WIN98SE. Для WIN95 и на случай отсутствия в пример входит драйвер smartvsd.vxd. Под Y2K/NT тоже должно работать, но не проверялось. Предупреждаю сразу - эта технология не видит винты на внешних контроллерах!!! И, к сожалению, через неё доступны только IDE устройства. Более подробную информацию смотрите в файле readme.txt в примере и посетите вышеприведенные ссылки.
Скачать этот пример можно здесь:SmartView.zip