web-dev-qa-db-ja.com

MTPデバイスで「プラグを抜く」ことはできますか?

一般的なUSBストレージデバイスをWindowsに接続した後、ドライブを取り外す前に、ドライブを適切にアンマウントすることが重要です。そうしないと、データが失われる可能性があります。

しかし、USB経由でWindowsボックスに接続されているMTPデバイス(多くのAndroidデバイスなど)の場合、USBケーブルを外す前に何らかの手順を実行する必要がありますか?

Windowsのすべてのバージョン(XP以降)でこれを理解することに興味があるので、該当するWindowsバージョンを回答に含めてください。

17
RockPaperLizard

USB mass storage deviceを接続すると、ホストコンピューターに大容量記憶装置への差別化されていないアクセスが許可されます。

これは、ハードドライブと同様にファイルシステムを完全に制御することを前提としています。

そのため、ホストシステムからデバイス間の接続を切断するように明示的に指示されない限り、ホストコンピューターがファイルシステムを破損する可能性があります。したがって、"Safely Remove Hardware and Eject Media"メッセージ。


ただし、MTPまたはMedia Transfer Protocolは、ブロックレベルの大容量記憶装置の大きな単位としてではなく、ファイルレベルで動作します。

MTPデバイスなどのデバイスを接続すると、ホストシステムはデバイス上のファイルを照会します。

これは多くの場合、MTPデバイスのルートファイルシステム上のデータベースまたはインデックスとして維持されます。 MTPデバイスのシステムは、コンテンツが変更されたときにデバイス全体を再スキャンする必要はありません。データベース/インデックスを更新するだけで済みます。


その後、ホストシステムはファイルをダウンロードでき、信号がデバイスに送信され、この要求を確認します。要求されたファイルはデバイスによって送信されます。

ファイルの削除はほとんど同じように機能します。ホストシステムはメッセージをデバイスに送信し、ファイルに削除のマークを付けます。デバイスは、信号を確認するとファイルを削除します。

これは、ファイルが変更されているかどうかにかかわらず、トランザクションファイルシステムのように機能します。ストレージは、転送の失敗による影響を受けません。


これは、MTPが一度に1つのファイル転送(アトミックファイル転送)のみを許可する理由でもあり、操作が順次実行されるときに破損が発生することはありません。

そうです、デバイスのプラグを引っ張るだけです

MTPの詳細、およびUSBマスストレージとの比較

21
Carrein