使用の詳細: USBが大容量記憶装置として使用されています。デバイス自体はインテリジェントなコンポーネントであり、実行時にファイルを作成できます。USBマスストレージ:デバイス側のデータ変更がPCファイルシステムで表示されない
なぜ大容量ストレージを使用しますか? 私は、データを転送するためのさまざまなプラットフォーム用のUSB DDを開発したくなかったので。既存のユニバーサルマスストレージドライバをPCとデバイス間の通信に使用することができます。
問題: デバイスがPCに接続されると、別のドライブとして検出され、ファイルシステムに表示されます。 デバイス側でファイルを作成すると、メモリはPCから見えますが、PCのファイルシステムに反映されません。更新されたデータは、USBデバイスのソフトリセットを実行するか、プラグインしてデバイスに接続すると表示されます。デバイスの列挙は最初から再度行われるためです。
質問: デバイスメモリの変更されたデータがPCで見えないのはなぜですか? USBの下位層には、デバイスの列挙を再度実行するためのコマンドをPCに送信する方法がありますか?
あなたはファイルシステム構造の問題がある限り正しいです。しかし、キャッシュ全体のUSBドライブは、私は可能性は疑いがあります。 32 GBのメモリを搭載した大容量記憶装置を考えてみると、PCはメモリ全体をキャッシュすることはできません。このキャッシングには一定の制限があります。私の憶測は、システムが使用しているページのサイズに関係なく、データの量はキャッシュされ、残りはアクセスに応じて後で取り出されます。 – ADushyant
現在、デバイスにソフトリセットを実行するように設定しました。これはOSにデバイスの再列挙を通知する方法ですが、一部のOSではエラープロンプトが表示されます。これは避けたいものです。 OSに何らかの信号を送りたいので、再び列挙を始めることができます。 – ADushyant
@Adushyant:どのFSを使用していますか? IIRCの場合、FAT32などの構造をキャッシュすることはかなり可能であるはずです(実際には、リセット以外の唯一の方法はSCSIメディアの削除だと思いますが、それでもエラーが発生する可能性があります。 OSでは手動ではなく) – Hasturkun