これは、1 つの投稿にまとめられたいくつかの質問です。
1) USB 大容量記憶装置が接続されているかどうかを確認する最善の方法は何ですか?
2) USB ドライブにデータを書き込む最良の方法は何ですか?
3) USB ドライブのメモリを通常のメモリと同じように扱えますか?
USBドライブはドライブ文字として表示されます。GetDriveTypeAPIを使用して、USBデバイスである可能性があることを検出できます。ただし、これは取り外し可能であることを示しているだけであり、実際にはUSBドライブであることを示しているわけではありません。そのためには、 SetupDiGetDeviceRegistryProperty関数(GetDriveTypeMSDNリファレンスから参照)を確認する必要がある場合があります。また、ドライブ文字ではないディスクをマウントしたり、ディスクマウントを表さないドライブ文字をマウントしたりすることもできます。そのため、すべてのUSBドライブを見つけるには、他のSetupDi...機能のいくつかを調べてください。
ドライブ文字であるため、USBドライブの読み取りと書き込みの通常の方法は、fopenまたはWindowsなどのファイルシステム機能を使用することですCreateFile。メモリのように直接書き込みたい場合は、デバイス全体にまたがるファイルを作成してから、ファイルをメモリマップすることができます。ただし、特殊なアプリケーションを除いて、I / Oエラー(ユーザーがドライブを抜くなど)が発生した場合、プログラムでSEH例外が発生し、多くの問題が発生するため、お勧めしません。避けるのが最善です。