はじめまして。
現在、Windowsの隠しAPIである、
「HOTPLUG.DLL」の調査をしています。
このDLLの関数をVB6から利用したいと思っています。
DLL関数の列挙は完了しているのですが、
各関数の利用方法がわかりません。
もし、ご存知の方がおられましたら、
ご教授お願いいたします。
[ ] HOTPLUG.DLL
Import Ordinal Hint Function Entry Point
------ ----------- ----------- ------------------------------- -----------
Export Ordinal Hint Function Entry Point
------ ----------- ----------- ------------------------------- -----------
[C ] 1 (0x0001) 0 (0x0000) CPlApplet 0x0000534D
[C ] 2 (0x0002) 1 (0x0001) CreateLocalServerW 0x000026A6
[C ] 12 (0x000C) 2 (0x0002) DllCanUnloadNow 0x000025BF
[C ] 13 (0x000D) 3 (0x0003) DllGetClassObject 0x000025CB
[C ] 14 (0x000E) 4 (0x0004) DllRegisterServer 0x000025E4
[C ] 15 (0x000F) 5 (0x0005) DllUnregisterServer 0x000025F3
[C ] 3 (0x0003) 6 (0x0006) HotPlugDeviceTree 0x00004FD0
[C ] 4 (0x0004) 7 (0x0007) HotPlugDriverBlockedW 0x000052C1
[C ] 5 (0x0005) 8 (0x0008) HotPlugEjectDevice 0x0000504B
[C ] 6 (0x0006) 9 (0x0009) HotPlugEjectVetoedW 0x00005410
[C ] 7 (0x0007) 10 (0x000A) HotPlugHibernateVetoedW 0x0000542C
[C ] 8 (0x0008) 11 (0x000B) HotPlugRemovalVetoedW 0x00005402
[C ] 9 (0x0009) 12 (0x000C) HotPlugSafeRemovalNotificationW 0x00005141
[C ] 10 (0x000A) 13 (0x000D) HotPlugStandbyVetoedW 0x0000541E
[C ] 11 (0x000B) 14 (0x000E) HotPlugWarmEjectVetoedW 0x0000543A
参考文献でもいいから、お教えくださいませ。
追記ですが、
DeviceIoControl
では無理でした。
2000DDKなどを目を通しましたが、
デバイスドライバの作成は乗っていました。
ただし、取り外しの際のイベント発行については、
記載されていませんでした。
ttp://www.webtropy.com/articles/dll-api.aspx?dll=hotplug
>how to use these API's in your C# and VB.NET applications,
>please refer to the book Network programming in .NET
>(Buy at Amazon UK) (Buy at Amazon US)
やっぱこの本買っきゃないな。
http://www.amazon.co.jp/exec/obidos/ASIN/1555583156/249-6241929-8486706
ううむ、本屋いってみるか w
うきゃー
わかんねー
やっぱ、本か...
hdwwiz.cpl (コントロールパネルの「ハードウェアの追加と削除」)が使っているようなので、これをデバッガでトレースしてみるとかどうでしょうか。
hdwwiz.cpl では結局
RUNDLL32 SHELL32.DLL,Control_RunDLL hotplug.dll
を呼び出しているだけな気がしてきました。
サーバー機の付属管理ツールとかにヒントがあるかもしれませんね。
何をしたいのか不明……。
ハードの取り外しだけなら、CM_Request_Device_Eject を
投げる事になると思いますが……そういう事ではないのかな?
デバイスの取り外しのサンプル。(添付されたPNG画像を参照)
http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=44542
……VBのコードじゃないけれど。
わぉ、みなさまありがとうございます。
VB用にコーディングは無理ですね。
方法として、次の手法を行ってみます。
①.VC6にて、DLLを作成。
②.VB6にて、インターフェースを実装し、DLLをコール。
完成次第、また報告しにきます。
毎度どうもです。
とりあえず、DOS版を作ってみました。
http://helloweb.ddo.jp/BBS/Bbs.htm
上記、http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=44542
のソースをそのまま使っています。 w
さぁ、次は、DLL化です。
ありがとうございました。
ツイート | ![]() |