Получение серийника HDD.

Тема в разделе "WASM.WIN32", создана пользователем n0name, 8 дек 2006.

  1. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Интересуюсь этим вопросом.
    Как я понял WMI обрашается к устройству "\\.\PhysicalDriveX", что является линком к "\Device\HarddiscX\Partition0". И посылает запрос SMART_RCV_DRIVE_DATA. В обработчике которой при irDriveRegs.bCommandReg = ID_CMD, посылается запрос драйверу минипорта IOCTL_SCSI_MINIPORT_IDENTIFY. В котором уже в SystemBuffer(METHOD_BUFFERED) копируется статическая информация, получаемая при загрузке винды. Так вот вопрос, может кроме такого пути есть другие? То есть может получаемая информация помещаяется в реестр?
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    вот и мне интересно, особенно если используется рейд
     
  3. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    вот моя поделка...
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    в чём фишка?
    Это очень популярный метод получения серийника.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    PS: Как мало изменилось в ядре винды со времён NT4...
     
  6. ak217

    ak217 New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2004
    Сообщения:
    25
    Это несерьезно. Оно не будет работать не из-под админа.
    А вот моя будет.
    http://home.earthlink.net/~akonshin/files/IdeSN2.zip

    Но с RAID оно работать тоже не будет.
    Проблема в том, что в случае RAID, во-первых, мы имеем дело с драйвером SCSI, а во-вторых,
    аппаратный RAID не обязан предоставлять информацию о винчестерах в него входящих и он выглядит как один диск. Так что если RAID контроллер и его драйвер дает такую информацию, то теоретически ее получить можно, но практически я не знаю API для получения такой информации, хотя сильно и не рылся. И даже если можно найти такой API для какого-то типа RAID контроллеров, нет абсолютно никакой гарантии, что это будет работать для других контроллеров.

    Вот такое мое IMHO.

    Alex Konshin
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Это по сути более низкоуровневое обращение. В примере khv_test тоже будет обращение к "ScsiX:" но в ядре, в обработчике SMART_RCV_DRIVE_DATA.
     
  8. ak217

    ak217 New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2004
    Сообщения:
    25
    Я знаю. Но принципиальная разница в правах доступа для этих объектов.
     
  9. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    Если не ошибаюся, то в какой-то ветке реестра хранится список оборудования. Вот там можно и подглядеть...
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Можно поподробнее - я искал, не нашёл.
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Имя модели можно найти и в "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0\Identifier".
     
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    вот тут еще что-то есть
    http://www.winsim.com/diskid32/
     
  13. like_a

    like_a New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2006
    Сообщения:
    16
    а для scsi это будет работать?

    и еще один вопрос, почти не в тему, есть винт WDC WD74 0GDFLA2 SCSI, но он sata. Откуда тогда в названии SCSI?
     
  14. ak217

    ak217 New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2004
    Сообщения:
    25
    Для SCSI у меня на сайте есть пример, который работает через SPTI.
    Но он будет работать только под админом.
    Если надо, чтобы работало под любым пользователем, то можно через ASPI, но он не поддерживается Microsoft.
    http://home.earthlink.net/~akonshin/delphi_ru.htm