web-dev-qa-db-ja.com

Win32 APIを使用してUSBドライブを安全に取り外しますか?

Win32 APIを使用してUSBドライブを削除するにはどうすればよいですか?私は組み込みシステムで多くの作業を行っていますが、これらの1つでは、プログラムをUSBスティックにコピーして、ターゲットハードウェアに挿入する必要があります。

私はほとんどコンソールで作業しているので、マウスを使用して小さなタスクバーアイコンを1日に100回クリックするのは好きではありません。

それを正確に行うための小さなプログラムを作成して、メイクファイルに追加できるようにしたいのですが、同じことを行うAPI呼び出しが見つかりませんでした。

何か案は?

31

CM_Request_Device_Eject()関数やその他の可能性を使用できます。次のプロジェクトと記事を参照してください。

DevEject:簡単です。 http://www.withopf.com/tools/deveject/

有用なCodeProject記事: http://www.codeproject.com/KB/system/RemoveDriveByLetter.aspx

18
Kris Kumler

Sync では、-eを指定してリムーバブルドライブを取り出すことができます。 Win32 APIではありませんが、おそらくsync -e [drive_letter]をメイクファイルから。

5
Grant Wagner

こちらがリムーバブルストレージメディアについての technet記事 です。 DismountNtmsMediaを探します。

4
jop

Delphiのソリューションは次のとおりです。これを変更して、非常に大規模な企業で使用するためにサービスに入れました。移動先: リンクテキスト

「scapi(Setup&Config Manager API)」を探してダウンロードします。 USBViewと呼ばれるデモプログラムがあり、あなたを先に進めます。 Delphiを使用している場合、これには、USBデバイスに関する情報を収集するときに使用できるTUSBDeviceTreeコンポーネントも含まれます。

よろしく

1
Mick