ホットプラグについて

解決


クラゲ  URL  2005-06-01 15:29:19  No: 90180  IP: [192.*.*.*]

はじめまして。
現在、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

編集 削除
クラゲ  URL  2005-06-01 20:47:16  No: 90181  IP: [192.*.*.*]

参考文献でもいいから、お教えくださいませ。

編集 削除
クラゲ  URL  2005-06-01 21:46:25  No: 90182  IP: [192.*.*.*]

追記ですが、
DeviceIoControl
では無理でした。

2000DDKなどを目を通しましたが、
デバイスドライバの作成は乗っていました。
ただし、取り外しの際のイベント発行については、
記載されていませんでした。

編集 削除
ねろ  2005-06-01 22:04:31  No: 90183  IP: [192.*.*.*]

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

編集 削除
クラゲ  URL  2005-06-02 01:08:06  No: 90184  IP: [192.*.*.*]

ううむ、本屋いってみるか w

編集 削除
クラゲ  URL  2005-06-02 01:37:53  No: 90185  IP: [192.*.*.*]

うきゃー
わかんねー

やっぱ、本か...

編集 削除
ひろ  2005-06-02 09:27:08  No: 90186  IP: [192.*.*.*]

hdwwiz.cpl (コントロールパネルの「ハードウェアの追加と削除」)が使っているようなので、これをデバッガでトレースしてみるとかどうでしょうか。

編集 削除
ひろ  2005-06-02 09:43:56  No: 90187  IP: [192.*.*.*]

hdwwiz.cpl では結局
 RUNDLL32 SHELL32.DLL,Control_RunDLL hotplug.dll
を呼び出しているだけな気がしてきました。
サーバー機の付属管理ツールとかにヒントがあるかもしれませんね。

編集 削除
Dental  2005-06-02 10:35:44  No: 90188  IP: [192.*.*.*]

何をしたいのか不明……。

ハードの取り外しだけなら、CM_Request_Device_Eject を
投げる事になると思いますが……そういう事ではないのかな?

編集 削除
Dental  2005-06-02 10:38:51  No: 90189  IP: [192.*.*.*]

デバイスの取り外しのサンプル。(添付されたPNG画像を参照)
http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=44542

……VBのコードじゃないけれど。

編集 削除
クラゲ  URL  2005-06-02 20:06:13  No: 90190  IP: [192.*.*.*]

わぉ、みなさまありがとうございます。

VB用にコーディングは無理ですね。
方法として、次の手法を行ってみます。

①.VC6にて、DLLを作成。
②.VB6にて、インターフェースを実装し、DLLをコール。

完成次第、また報告しにきます。

編集 削除
クラゲ  URL  2005-06-03 19:41:42  No: 90191  IP: [192.*.*.*]

毎度どうもです。
とりあえず、DOS版を作ってみました。
http://helloweb.ddo.jp/BBS/Bbs.htm

上記、http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=44542
のソースをそのまま使っています。 w

さぁ、次は、DLL化です。

ありがとうございました。

編集 削除