Всем здравствуйте. Посоветуйте, как лучше обойти дерево устройств из режима ядра. Пройтись по devnode это конечно можно, но ведь ядро ходит по ним, захватывая соответствующие блокировки, которые простым людям недоступны. А если не блокировать devnode, то можно и page fault получить. Какая функция ядра будет вызвана первой, если из юзермода вызывается, например CM_Get_Parent_Ex ?
CM_Get_Parent_Ex, как оказалось, через дебри RPC использует комбинацию "чтение из реестра" и NtPlugPlayControl. Так и обходит живых представителей реестра. Других способов наверное нет.