Задача вроде вполне такая повседневная но меня поставила в определенный тупик. Вернее выход кое-какой есть, но мягко говоря через петербург, наверняка есть какие-то документированные средства! И так, у меня есть GUID устройств, из всех устройств с этим GUID мне надо выбрать любое работающее и получить его девайс нейм вроде \Device\xxx. Как это сделать? Из ядра/юзермода - неважно UPDATED: Вообщем, проблему решил, всем спасибо.
Видимо это можно сделать с помощью SetupAPI, но здесь у меня появились некоторые затруднения. Код (Text): HDEVINFO Hdl = SetupDiGetClassDevs(&GUID_DEVCLASS_MEDIA, NULL, NULL, DIGCF_PRESENT|DIGCF_DEVICEINTERFACE); if (Hdl == INVALID_HANDLE_VALUE) { DBGPRINT("SetupDiGetClassDevs fault: %d\n", GetLastError()); return res; } InterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA); if (!SetupDiEnumDeviceInterfaces(Hdl, NULL, &GUID_DEVCLASS_MEDIA, 0, &InterfaceData)) { DBGPRINT("SetupDiEnumDeviceInterfaces fault: %d\n", GetLastError()); На последней строчке для моего кода все и заканчивается с ошибкой НЕТ_БОЛЬШЕ_ЭЛЕМЕНТОВ_ДЛЯ_ПЕРЕЧИСЛЕНИЯ. И, честно говоря, GUID_DEVCLASS_MEDIA в вызове SetupDiEnumDeviceInterfaces это такой финт ушами от не знания что уж и делать. Дело в том что там, по идее, должен быть некий иной GUID интерфейсный, но откуда его брать я вообще в недоумении. В google видел примеры где и в SetupDiGetClassDevs и в SetupDiEnumDeviceInterfaces подставлялся один и тот же GUI, но мне от этого теплее не стало. UPDATED: Вообщем, проблему решил, всем спасибо.