※わけあって市販品や既存ツールの導入は考えておりません
一般的に市販されているツールでは、デバイスIDを認識し固体識別を行い、
固体識別とユーザ(又は端末)にしたがってアクセス権を制御しているようです。
USBデバイスの固体識別までは情報を集めプログラミングできたのですが、
実際にその情報からアクセス制御を行うところで壁にぶつかっています。
デバイスが接続状態(接続されたこと、取り外されたこと)や、
どのデバイスが接続されているのかまでは認識できているので、
後は制御だけなのですが、実装方法そのものが浮かびません。
開発経験や情報をお持ちの方がいらっしゃればお教えいただければ助かります。
なお、言語は「.NET(VB/C#)」を中心に「VC++」も少し使えます。
私が考えるとすれば、拡張子で判別するとなると、サービスなりアプリなりが常駐し、
何かを張り付けするタイミングを見張っていて、制御するというのが考えられますし、
また、CR/DVD-Rなどへのライティングソフトみたいに、専用のアプリを作成して、
それでないとUSBメモリには書き込めないようにするというようなことぐらいしか
思いつかないのですが、そういった場合では、どちらかというと普通のアプリケーション
作成の知識が問われるような気がします。
どうでしょうか。
今回の質問している制御は当初は市販のツールで行う予定でした。
その際の動作としては、制御用のサービスアプリがバックグラウンドで動作しており、
拡張子やファイルタイプに関係なく、USBと利用者(ログインIDや端末)にて
書き込みをさせる、させないの制御が行われていました。
操作感は各社各様なのですが、特別なUI経由でファイルを操作するわけではなく、
USBメモリーに対する操作は通常のエクスプローラーの操作と同様でした。
ですので、恐らくアクセス権限又はデバイスの制御やプロセスフック等により実現しているのではないかと思います。
※C++だと、イメージ的には特定デバイスに対するファイル操作のプロセスを制御する形でしょうか・・・
id:akumasyougun666は不適切な回答を繰り返しているようですので、オープンしなくてもいいと思います。
http://q.hatena.ne.jp/akumasyougun666/answerlist で約80件確認
ページ右上の「設定」メニューから「回答拒否ユーザー」に設定する事で、今後このユーザーからの回答を拒否する事ができます。(※知っているかもしれませんが・・・)
http://hatenaquestion.g.hatena.ne.jp/keyword/%E5%A5%BD%E3%81%BE%E3%81%97%E3%81%8F%E3%81%AA%E3%81%84%E5%9B%9E%E7%AD%94%E8%80%85%E3%82%92%E6%8B%92%E5%90%A6%E3%81%99%E3%82%8B
※上記の設定をしていただけますと、「他ユーザーの設定による回答拒否」を設定している質問者が、今後このユーザーによる被害を受けなくて済みます。