Перечисление логических дисков на USB-драйве

Тема в разделе "WASM.WIN32", создана пользователем gilg, 17 ноя 2006.

  1. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    Возникла следующая проблема. Требуется определить, какие логические диски были замонтированы в результате подключения USB-драйва. Устанавливаю callback с помощью IoRegisterPlugPlayNotification и в нем получаю DeviceObject и FileObject для устройства, созданного драйвером usbhub.sys. Как можно подняться по стеку устройств выше и получить список замонтированных разделов?

    ЗЫ: Через DeviceObject->AttachedDevice могу перейти к DeviceObject`у usbstor.sys. У него AttachedDevice пустой, как и Vpb. Как подняться еще на один уровень вверх - к устройствам disk.sys?
     
  2. gilg

    gilg New Member

    Публикаций:
    0
    Регистрация:
    19 май 2005
    Сообщения:
    527
    уфф... добрался кое-как до устройства DR4 (symlink \Device\Harddisk4\DR4) драйвера disk.sys
    От него нужно перейти к томам ftdisk.sys. На osronline нашел, что это можно сделать так:
    А нет ли способа попроще и попрямее?
     
  3. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    можно еще Installation API попробовать... (SetupDi..) с их помощью вроде можно перебирать дерево устройств