Недавно я начал изучать способ управления драйверами в Windows и узнал о дереве устройств и стеках. Мне было любопытно, если бы был способ получить эту информацию о моей системе. Я использую Windows 10.

Просто чтобы уточнить, было бы идеально, если бы я мог получить все дерево устройств. Это означает, что он должен начинаться с корня и продолжаться до физических устройств. Например, из документации по драйверу Windows

Однако, даже если это невозможно, и я все еще могу просматривать поддеревья (возможно, на основе таких компонентов, как сеть, USB и т.д.), Это тоже будет работать.

Чем больше деталей, тем лучше.

  1. Если я могу получить соответствующий драйвер (и версию) для устройств

  2. Знать, какие устройства находятся вместе в стеке устройств (функция DO, фильтр DO и PDO)

Моя конечная цель - посмотреть, смогу ли я сгруппировать водителей вместе. Подумал, если дерево устройств уже присутствует, может попытаться использовать это.

Спасибо!

1 ответ1

0

Более старые версии Windows Driver Kit включали в себя утилиту "Дерево устройств" из OSR, которую Дэвид Постилл связывал. Он не претендует на работу в Windows 10, и я видел сбой нескольких ОС Windows, которые он предположительно поддерживал. Если вы хотите поэкспериментировать с этим, я бы сделал это в Windows 8 или более ранней версии, и желательно в системе, в которой нет ничего, что не могло бы выдержать сбой. Но это должно дать вам некоторое представление.

https://www.osronline.com/article.cfm?article=97

(добавлено в комментарии) В противном случае WinDbg всегда находится в "живом" режиме отладки ядра. Он не даст вам довольно древовидную структуру DevStacks, но, по крайней мере, может показать вам все объекты устройства в каждом DevStack, к какому драйверу принадлежит каждый, и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .