web-dev-qa-db-ja.com

Windowsでデバイスツリーを表示する方法はありますか?

私は最近、Windowsがドライバーを管理する方法を調べ始め、デバイスツリーとスタックについて調べました。私のシステムに関するこの情報を取得する方法があるかどうか興味がありました。私はWindows10を実行しています。

明確にするために、デバイスツリー全体を取得できれば理想的です。これは、ルートから開始し、物理デバイスまで続く必要があることを意味します。 たとえば、Windowsドライバーのドキュメントから

ただし、それが不可能で、サブツリーを表示できる場合でも(おそらく、ネットワーク、USBなどのコンポーネントに基づいて)、それも機能します。

詳細が多いほど良い。

  1. デバイスに関連付けられているドライバー(およびバージョン)を入手できる場合

  2. どのデバイスがデバイススタックに一緒にあるかを知る(関数DO、フィルターDO、およびPDO)

私の最終的な目標は、ドライバーをグループ化できるかどうかを確認することです。デバイスツリーがすでに存在する場合は、それを使おうとするかもしれません。

ありがとう!

1
guest-ghost

古いバージョンのWindowsDriver Kitには、DavidPostillがリンクしたOSRの「DeviceTree」ユーティリティが含まれていました。 Windows 10で動作するとは主張されておらず、サポートされていると思われるいくつかのWindowsOSがクラッシュするのを見ました。実験したい場合は、Windows 8以前で、できればクラッシュに耐えられないものを実行していないシステムで実行します。しかし、それはあなたにいくつかの洞察を与えるはずです。

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

(コメントごとに追加)これに失敗すると、常に「ライブ」カーネルデバッグモードのWinDbgが存在します。 DevStackのツリー構造の見栄えはよくありませんが、少なくとも、各DevStack内のすべてのデバイスオブジェクト、それぞれが属するドライバーなどを表示できます。

0
Jamie Hanrahan