Добавлено: Сб, 17 Май, 2008 23:34 Заголовок сообщения:
nazyura писал(а):
Код:
где здесь выбрать USB-винт
Вот именно, что нет там выбора USB,
а есть только его BIOS-эмуляция.
отлично, давайте доказательства в студию
покажите где и как БИОС эмулирует USB-винт на IDE0 или IDE1 и ваша прога может работать с такими USB-винтами, пока что это ваши предположения и цитируя вас: "С такими выводами, я никогда не соглашусь. Такого просто не может быть по определению."
Добавлено: Вс, 18 Май, 2008 07:21 Заголовок сообщения:
Цитата:
ответ был я не виноват
Он был примерно таким:
А почему крокодил зеленый ?
Патамушта он зеленый.
Цитата:
давайте доказательства в студию
Я не могу знать, как он это делал,
возможно и вынул из бокса.
Я по почте получал архивы с модулями,
так-что, пример может быть некорректным
Но я рад, что, так или иначе, вопрос о причинах
отсутствия ответа на команды SMART, мне стал понятен.
Tomset, в самом начале топика, предпологжил
правильно (вернее, было более развернутое объяснение),
хотя причина не была известна.
Вам, я то-же благодарен, за то что, сподвигнули
меня искать подноготную...
Добавлено: Пн, 19 Май, 2008 21:02 Заголовок сообщения:
...Покой нам только снится или... вторая серия.
Цитата:
Как можно заметить драйверу подается SCSI-команда
Я бы так сказал...
Цитата:
Как можно заметить, драйверу подается ATA-команда,
но, как-бы, в SCSI-формате, т.е., в пакетном режиме.
Получается так:
Host-программа, посылает обычную ATA-команду,
драйвер, формирует из нее пакет а-ля SCSI и посылает его винту,
который является видимо, SAS-подобным (Serial ATA SCSI).
("Кто в боксе?"... интересно, что в нем есть от SCSI?)
Если будет послана команда GetSmartAttribute,
то драйвер (по рекомендации ATA), должен преобразовать
полученный от винта SCSI-DiagnosticLog и преобразовать
его данные и структуру, в сектор, обычного ATA SMART-отчета.
Видимо есть производители, которые "подсуетились"
и ввели в драйвер эту процедуру, другие-же,
вероятно, расчитывают на свой диагностический софт,
который работает в обход этого драйвера.
Поэтому, такие драйверы, просто игнорируют
эти команды, или, возвращают ABORT.
Драйверы, видимо, отсекают только те команды,
(в основном информативные), ответ от которых
они не могут преобразовать в "обычный" вид,
остальные-же команды (включая любую чушь),
будут беспрепятственно, преобразовываться
в а-ля SCSI-пакет и посылаться винту.
Здесь конечно не все точно, но основная причина
отсутствия ответа SMART и пути решения,
мне, вроде кажутся, очевидными.
Doomer, вы SCSI ковыряете давно, не могли бы вы
проанализировать коды различных драйверов и показать,
какие именно команды "отбрасываются" ABORTом
и (или) игнорируются ими ?
И еше...
Какие именно модели, Firmware, и.т.д.,
отдают/не отдают SMART-отчет?
...может их свойства/характеристики чем-то помогут.
Добавлено: Пн, 19 Май, 2008 23:52 Заголовок сообщения:
nazyura
Юр! А зачем?
Есть какая та группа "недоделанных" контроллеров.
Вот у меня третий год, какая то ноу-нейм коробка USB и в ней тошиба GAX, совершенно не беспокоит какой там у него SMART. Начнет HDD "чудить" достану и проверю на обычном компе. Ну и еще пара коробок валяется, время от времени пользуюсь. Тоже смарт не поддерживают.
В целом, нужно разбираться с дикрипторами устройства. Которые возвращают эти коробки. Через эти дискрипторы программе предается, что устройство может.
Добавлено: Вт, 20 Май, 2008 06:00 Заголовок сообщения:
Цитата:
неправильно
В смысле ?
(опять "Крокодил зеленый")
Вот часть кода...
Цитата:
function TUSBDisk.CypressEnableSMART(hDevice : THandle) : Results;
var
IDECmd:IDERegs;
Len : Ulong;
Buff : array [0..1024] of byte;
begin
Len:=0;
IdeCmd.bFeaturesReg:=$D8;
IdeCmd.bSectorCountReg:=$00;
IdeCmd.bSectorNumberReg:=00;
IdeCmd.bCylLowReg:=$4F;
IdeCmd.bCylHighReg:=$C2;
IdeCmd.bDriveHeadReg:=$A0;
IdeCmd.bCommandReg:=$B0;
IdeCmd.bReserved:=$00;
Разве D8-00-00-4F-C2-A0-B0 не АТА-команда ?
Цитата:
А зачем?
Мне эта тема интересна.
И не столько отсутствие SMART, сколько, причина такого
ненормального ноу-хау. И почему так делается.
Спасибо за ссылки - погляжу...