私は最近、広告の仕掛けとして小さなUSBフラッシュドライブを与えられました。プラグを差し込むと、ドライブが1つだけ表示されます。42kbが使用されているCDドライブです(製造元のWebサイトを起動するautorun.infファイルのみ)。 ドライブもCDドライブとして表示されますが、 アンインストールユーティリティ は自分のドライブでのみ機能します。
代わりにUSBドライブとして表示するにはどうすればよいですか?逆に、自分で同じことをしたい場合、どうすればCDドライブとして表示できますか?
それはプログラムで実行できると確信しています。そうしないと、アンインストールプログラムが機能しません。
これはハードウェアで行われます。このデバイスは、CDドライブ用とリムーバブルストレージドライブ用の2つの子を含む複合デバイスとして識別されます。
フラッシュドライブは、cdfsファイルシステムを使用してパーティション分割およびフォーマットされています。dosコマンドdiskpartを使用して、パーティションをfatfat32またはntfsとして確認および削除/作成します。
ここで2つの質問があります。
1)USBドライブとして表示させるにはどうすればよいですか?
それはデバイス自体に依存します。 2つのオプションが表示されます。
デバイス記述子を微調整するということは、デバイス記述子を受け取り、変更されたものをWindowsに渡すフィルタードライバーを意味します。フィルタードライバーの作成はそれほど難しくありません。フィルタードライバーの例は、ドライバー開発キットにあります。 USBプロトコルの基本的な理解も必要になります。
2)逆に、自分で同じことをしたい場合、どうすればCDドライブとして表示できますか?
基本的には同じで、デバイス記述子をCDROMデバイスによって認識されるように変更するフィルタードライバーですが、WindowsがCDROMを認識すると、追加のSCSIコマンドをデバイスに送信します。理想的には、デバイスはサポートされていないコマンドを返すだけで問題ありませんが、私の経験から、ほとんどのデバイスは十分に汎用的ではなく、動作は定義されていません。この場合、この追加のコマンドをキャッチし、実際にデバイスに送信せずにコマンドを完了する追加のフィルタードライバーが必要になります。
PS
私の答えは、デバイスファームウェアにアクセスできないことを前提としています。ファームウェアにアクセスできる場合は、デバイス記述子を変更し、サポートされていないコマンドが正しく処理されるようにすることで、非常に簡単に実行できます。
P.P.S
実際にはこれを実装するとは思わないので、リソースへのリンクは提供していません。私が間違っている場合は私に知らせてください、そして私は関連するリソースを提供します。 Ok one link 一般情報付き
やあ、私はUSB FDをサーバーで使用して、2つのデバイスのCDとUSBにしました。あなたがしなければならない唯一のことは、chipgeniusをダウンロードして実行し、それがあなたのUSBを識別するのを待ってから、 http://flashboot.ru/files/ あなたのUSBファームウェアツールを検索することです。あなたが正しいものを手に入れれば、私は問題がないと確信しています。私はそれを行い、USBを雇われたブートCD-ROMに変えました、そしてBIOSからブートするとき、あなたはもはやあなたのUSB名を選択せず、usb-cdromオプションを選択します。