カテゴリ:ソフト開発日誌
ハードディスクを列挙する方法を探していたら enumcd (Microsoft support online) を見つけた。サンプルは光学ドライブを探すものだったけど、ハードディスクにも応用できる。
GUID_DEVCLASS_CDROM → GUID_DEVCLASS_DISKDRIVE, CdRomClassGuid → DiskClassGuid と書き換えれば、ハードディスクの列挙にすぐに使えそうなことが判明した。 SetupDiGetClassDevs, SetupDiGetDeviceInterfaceDetail, SetupDiDestroyDeviceInfoList が肝の API の様だ。DDK の中だけで定義してある API なので Delphi で使うには setupapi.h 相当のユニットを作り setupapi.dll とリンク出来るようにする必要がある。 enumcd にはちょっとしたバグがある DebugLevel=3 にすると、 ディスクドライブのパスは \\.\\PHYSICALDRIVE0 ではなく、次のように長い文字列として得られた。 \\?\scsi#disk&ven_maxtor_6&prod_v300f0#4 このため いま地道にヘッダ移植中だ。 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2007.09.22 14:33:30
コメント(0) | コメントを書く
[ソフト開発日誌] カテゴリの最新記事
|
|