DevicePath

Тема в разделе "WASM.WIN32", создана пользователем Gennadiy_M, 24 июл 2008.

  1. Gennadiy_M

    Gennadiy_M New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2008
    Сообщения:
    22
    Как по DevInst устройства узнать его DevicePath (имя, которое можно открыть через CreateFile)?
     
  2. Gennadiy_M

    Gennadiy_M New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2008
    Сообщения:
    22
    Ну или как программно получить InterfaceClassGuid? Голову сломал. В реестре что ли искать? SetupApi.dll не даёт такой информации?

    Заранее всем спасибо.
     
  3. Songoku

    Songoku Эдгар

    Публикаций:
    0
    Регистрация:
    1 мар 2003
    Сообщения:
    68
    Адрес:
    Belarus
    Меня тоже этот вопрос интересует ;)
     
  4. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    Что такое DevInst? Нэндл? ZwQueryObject?
     
  5. Songoku

    Songoku Эдгар

    Публикаций:
    0
    Регистрация:
    1 мар 2003
    Сообщения:
    68
    Адрес:
    Belarus
  6. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    CM_Get_DevNode_Registry_Property_Ex, CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME?
     
  7. Gennadiy_M

    Gennadiy_M New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2008
    Сообщения:
    22
    В MSDN для функции CM_Get_DevNode_Registry_Property_Ex написано "Do not use this function. Use device installation functions instead." Типа просят использовать функции SetupDi...
     
  8. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    Действительно, есть еще функция SetupDiGetDeviceRegistryProperty и свойство SPDRP_PHYSICAL_DEVICE_OBJECT_NAME. Сйчас уже не помню, почему ей не пользовался - может банально не заметил..
    Кстати, "physicalname" CreateFile'ом не откроешь. Зато ZwOpenFile - пожалуйста. Или конвертить этот "physicalname" в валидную для CreateFile ссылку (наподобие того, как для, скажем, "\Device\HarddiskVolume0" существует валидная для kernel32 ссылка "\??\C:" Правда CreateFile'у нужно тогда подсунуть "\\?\C:" или просто "C:"). Подобные темы уже поднимались на форуме, можно поискать..
     
  9. Gennadiy_M

    Gennadiy_M New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2008
    Сообщения:
    22
    Спасибо!