Ну или как программно получить InterfaceClassGuid? Голову сломал. В реестре что ли искать? SetupApi.dll не даёт такой информации? Заранее всем спасибо.
В MSDN для функции CM_Get_DevNode_Registry_Property_Ex написано "Do not use this function. Use device installation functions instead." Типа просят использовать функции SetupDi...
Действительно, есть еще функция SetupDiGetDeviceRegistryProperty и свойство SPDRP_PHYSICAL_DEVICE_OBJECT_NAME. Сйчас уже не помню, почему ей не пользовался - может банально не заметил.. Кстати, "physicalname" CreateFile'ом не откроешь. Зато ZwOpenFile - пожалуйста. Или конвертить этот "physicalname" в валидную для CreateFile ссылку (наподобие того, как для, скажем, "\Device\HarddiskVolume0" существует валидная для kernel32 ссылка "\??\C:" Правда CreateFile'у нужно тогда подсунуть "\\?\C:" или просто "C:"). Подобные темы уже поднимались на форуме, можно поискать..