potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

Win API SetupDi系関数とデバイスインターフェイスクラスのメモ

SetupDi系関数でデバイスインターフェイスクラスGUIDが取得できずに悩んだので、学んだことを記録します。結論、デバイスインターフェイスクラスGUIDはSDKヘッダーファイルの定数使用が正攻法です。cfgmgr32も使えるならCM_Enumerate_Classesで列挙できます。

図示すると以下です。

Microsoft DocsやSDK
↓
デバイスインターフェイスクラスGUID
(GUID_DEVINTERFACE_*等)
↓SetupDiGetClassDevs
デバイス情報リスト←SetupDiGetClassDevs
↓SetupDiEnumDeviceInfo
デバイス情報→デバイスインスタンス
↓      ↓
↓      デバイスセットアップクラス
↓←デバイスインターフェイスクラス
↓SetupDiEnumDeviceInterfaces
デバイスインターフェイス

or

デバイスインターフェイスクラスGUID
↓←デバイス情報リストSetupDiGetClassDevs
↓SetupDiEnumDeviceInterfaces
デバイスインターフェイス

デバイスセットアップ/インターフェイスクラスGUID
↓
デバイスセットアップ/インターフェイスクラスプロパティ