Доброго времени суток! столкнулся с необъяснимой для меня ситуацией: при определении инфы S.M.A.R.T. для разных винтов данные одного и того же аттрибута размещаются в разных частях буфера, например значение (VALUE) аттрибута "TEMPERATURE" для разных винтов находится по смещениям 133, 155, 215. (размер выходного буфера - 528 байт) алгос такой: DeviceIoControl (DFP_GET_VERSION) DeviceIoControl (DFP_SEND_DRIVE_COMMAND) DeviceIoControl (DFP_RECEIVE_DRIVE_DATA) необходимые параметры задаю корректно, по рабочему образцу. в чём может быть причина? разве возвращаемая в буфер инфа "моделечувствительна"? и как тогда обнаружить значение требуемого аттрибута?
RamMerLabs Конечно моделе зависима. Но все используют атрибуты имеют одинаковые коды и структуру выходного буффера известна.
Pavia а не подскажешь точную структуру буфера? точнее аттрибута. вразумительного ничего не повернулось в гугле
RamMerLabs список атрибутов с кодами есть на wiki. Описании структуры в SFF Committee Specification for Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.) SFF-8035i Плюс ATA/ATAPI
Pavia ещё вопросик возник: нахожу интересующий аттрибут по его номеру, читаю значение. но оказывается для разных винтов приходится читать разные поля структуры (bAttrValue, bRawValue) как определить откуда именно нужно читать данные для конкретного винта?
RamMerLabs Почти все винты которые я видел используют bRawValue (правда их было не так много, порядка 30). Только один из протестированных выдал ошибку, это был Hitachi. Полученное значение было совсем из другого числового диапазона.