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

Discussion in 'WASM.WIN32' started by n0name, Dec 8, 2006.

  1. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    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

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576
    вот и мне интересно, особенно если используется рейд
     
  3. khv_test

    khv_test New Member

    Blog Posts:
    0
    Joined:
    Jun 30, 2004
    Messages:
    135
    вот моя поделка...
     
  4. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    в чём фишка?
    Это очень популярный метод получения серийника.
     
  5. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    PS: Как мало изменилось в ядре винды со времён NT4...
     
  6. ak217

    ak217 New Member

    Blog Posts:
    0
    Joined:
    Dec 28, 2004
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    Это по сути более низкоуровневое обращение. В примере khv_test тоже будет обращение к "ScsiX:" но в ядре, в обработчике SMART_RCV_DRIVE_DATA.
     
  8. ak217

    ak217 New Member

    Blog Posts:
    0
    Joined:
    Dec 28, 2004
    Messages:
    25
    Я знаю. Но принципиальная разница в правах доступа для этих объектов.
     
  9. DrSex

    DrSex Юрий

    Blog Posts:
    0
    Joined:
    Apr 1, 2005
    Messages:
    98
    Location:
    Россия
    Если не ошибаюся, то в какой-то ветке реестра хранится список оборудования. Вот там можно и подглядеть...
     
  10. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    Можно поподробнее - я искал, не нашёл.
     
  11. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    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

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576
    вот тут еще что-то есть
    http://www.winsim.com/diskid32/
     
  13. like_a

    like_a New Member

    Blog Posts:
    0
    Joined:
    Dec 13, 2006
    Messages:
    16
    а для scsi это будет работать?

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

    ak217 New Member

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