プログラムによってリムーバブルディスクを安全に取り外したい
- 題名: プログラムによってリムーバブルディスクを安全に取り外したい
- 著者: ike
- 日時: 2006/02/07 17:04:17
- ID: 14902
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: プログラムによってリムーバブルディスクを安全に取り外したい
- 著者: ike
- 日時: 2006/02/07 17:58:24
- ID: 14906
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: プログラムによってリムーバブルディスクを安全に取り外したい
- 著者: 北
- 日時: 2006/02/07 18:19:47
- ID: 14907
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: プログラムによってリムーバブルディスクを安全に取り外したい
- 著者: ike
- 日時: 2006/02/07 18:39:20
- ID: 14908
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になっております。
リムーバブルディスクをPCから安全に取り外すには
タスクバーから「ハードウェアを取り外す」処理を行わなければなりませんが、
これをC#のプログラムから自動で取り外せるようにしたいのです。
調べたところ、DllImportによってDeviceIoControl()というAPI関数を
使用すれば良いと分かりました。(かなりの手間が掛かるようですが。)
同関数の使い方についてさらに調べてみたのですが、ここで問題が発生しました。
DeviceIoControl()の第2引数(DWORD型)には、
FSCTL_DISMOUNT_VOLUME・・・ボリュームをマウント解除する
FSCTL_LOCK_VOLUME・・・ボリュームをロックする
IOCTL_STORAGE_MEDIA_REMOVAL・・・メディア取り出しメカニズムを有効または無効にする。
IOCTL_STORAGE_EJECT_MEDIA・・・SCSI デバイスからメディアを取り出す
といった制御コードを指定する必要があるのですが、
これら制御コードの実際の値が分かりません。
ずいぶんと探したのですが何故か見つかりません。
DllImportによってAPI関数を使用するときには、
付随して使用する定数をその都度C#のソース上に定義する必要があり、
制御コードの実際の値が分からないと実装が不可能になります。
面倒な質問で恐縮なのですが、
どなたか上記の制御コードの実際の値がご存知でしたらご教授下さい。
もしくは、プログラムによってリムーバブルディスクをPCから安全に取り外す
もっと良い方法をご存知の方がいらっしゃいましたらご教授下さい。
宜しくお願いします。