web-dev-qa-db-ja.com

USBフラッシュドライブをCDドライブとして表示/非表示にするにはどうすればよいですか?

私は最近、広告の仕掛けとして小さなUSBフラッシュドライブを与えられました。プラグを差し込むと、ドライブが1つだけ表示されます。42kbが使用されているCDドライブです(製造元のWebサイトを起動するautorun.infファイルのみ)。 ドライブもCDドライブとして表示されますが、 アンインストールユーティリティ は自分のドライブでのみ機能します。

代わりにUSBドライブとして表示するにはどうすればよいですか?逆に、自分で同じことをしたい場合、どうすればCDドライブとして表示できますか?

それはプログラムで実行できると確信しています。そうしないと、アンインストールプログラムが機能しません。

7
mmyers

これはハードウェアで行われます。このデバイスは、CDドライブ用とリムーバブルストレージドライブ用の2つの子を含む複合デバイスとして識別されます。

7
On Freund

フラッシュドライブは、cdfsファイルシステムを使用してパーティション分割およびフォーマットされています。dosコマンドdiskpartを使用して、パーティションをfatfat32またはntfsとして確認および削除/作成します。

0
BBV

ここで2つの質問があります。

1)USBドライブとして表示させるにはどうすればよいですか?

それはデバイス自体に依存します。 2つのオプションが表示されます。

  • デバイスは書き込みをサポートしますが、それ自体をCDROMとして表し、読み取り専用です。この場合、デバイス記述子を調整するだけで、作業用ストレージデバイスを取得できます。
  • デバイスは書き込みを実装しておらず、何もできません。

デバイス記述子を微調整するということは、デバイス記述子を受け取り、変更されたものをWindowsに渡すフィルタードライバーを意味します。フィルタードライバーの作成はそれほど難しくありません。フィルタードライバーの例は、ドライバー開発キットにあります。 USBプロトコルの基本的な理解も必要になります。

2)逆に、自分で同じことをしたい場合、どうすればCDドライブとして表示できますか?

基本的には同じで、デバイス記述子をCDROMデバイスによって認識されるように変更するフィルタードライバーですが、WindowsがCDROMを認識すると、追加のSCSIコマンドをデバイスに送信します。理想的には、デバイスはサポートされていないコマンドを返すだけで問題ありませんが、私の経験から、ほとんどのデバイスは十分に汎用的ではなく、動作は定義されていません。この場合、この追加のコマンドをキャッチし、実際にデバイスに送信せずにコマンドを完了する追加のフィルタードライバーが必要になります。

PS
私の答えは、デバイスファームウェアにアクセスできないことを前提としています。ファームウェアにアクセスできる場合は、デバイス記述子を変更し、サポートされていないコマンドが正しく処理されるようにすることで、非常に簡単に実行できます。

P.P.S
実際にはこれを実装するとは思わないので、リソースへのリンクは提供していません。私が間違っている場合は私に知らせてください、そして私は関連するリソースを提供します。 Ok one link 一般情報付き

0
Ilya

やあ、私はUSB FDをサーバーで使用して、2つのデバイスのCDとUSBにしました。あなたがしなければならない唯一のことは、chipgeniusをダウンロードして実行し、それがあなたのUSBを識別するのを待ってから、 http://flashboot.ru/files/ あなたのUSBファームウェアツールを検索することです。あなたが正しいものを手に入れれば、私は問題がないと確信しています。私はそれを行い、USBを雇われたブートCD-ROMに変えました、そしてBIOSからブートするとき、あなたはもはやあなたのUSB名を選択せず​​、usb-cdromオプションを選択します。

0
user236472