JP2006286008A - すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス - Google Patents

すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス Download PDF

Info

Publication number
JP2006286008A
JP2006286008A JP2006125077A JP2006125077A JP2006286008A JP 2006286008 A JP2006286008 A JP 2006286008A JP 2006125077 A JP2006125077 A JP 2006125077A JP 2006125077 A JP2006125077 A JP 2006125077A JP 2006286008 A JP2006286008 A JP 2006286008A
Authority
JP
Japan
Prior art keywords
usb
command
storage device
information
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006125077A
Other languages
English (en)
Inventor
Sasha Paley
サシャ パリー
Arik Bovshover
アリク ボフショヴェール
Eyal Bychkov
ビシュコフ、イヤル
Aran Ziv
アラン ジブ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Milsys Ltd
Western Digital Israel Ltd
Original Assignee
M Systems Flash Disk Pionners Ltd
Milsys Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by M Systems Flash Disk Pionners Ltd, Milsys Ltd filed Critical M Systems Flash Disk Pionners Ltd
Publication of JP2006286008A publication Critical patent/JP2006286008A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects

Abstract

【課題】既存のオペレーティングシステムを使用した、キーチェーン記憶デバイスのドライバなしの動作を可能にし、その上、自動実行およびプライベートコマンドインタフェースも有効にするための方法を提供する。
【解決手段】ホストコンピュータの周辺デバイスが、マイクロコントローラおよび2つの仮想デバイスを有する。第1の仮想デバイスは、マイクロコントローラに、ホストコンピュータの任意のユーザからの第1のコマンドセットのコマンドを渡し、さらに、ホストコンピュータの特権ユーザのみからの第2のコマンドセットのコマンドも渡す。第2の仮想デバイスは、マイクロコントローラに、ホストコンピュータの任意のユーザからの第2のセットのコマンドを渡す。2つの仮想デバイスは独立した物理デバイスとして実装され、第2のデバイスは、ユーザが非特権である場合のみ、ホストコンピュータへのインタフェースに接続される。
【選択図】図4A

Description

本発明は、着脱可能な記憶デバイスに関し、特に、ホストコンピュータのユーザによって、ユーザのアクセス特権に関係なく完全にアクセスされることが可能な、着脱可能なUSB記憶デバイスに関する。
キーチェーン記憶デバイスは、着脱可能なモジュールであり、ホストコンピュータのユーザがデータを保存できるディスクライクな記憶領域と、モジュールがホストコンピュータと通信することを可能にするUSBインタフェースとを提供する。本発明の焦点は、記憶デバイスとホストコンピュータとの間の通信の手段および方法に当てられている。
既存のオペレーティングシステムは、マスストレージクラス(MSC)USBデバイスのサポートを含んでいる。これらのデバイスは、ホストコンピュータのユーザに、ハードディスクと同様の単純な記憶を提供することが意図されたものである。MSCデバイスへの標準アクセスは、ホストコンピュータのオペレーティングシステムを使用して、特権操作(マイクロソフト(Microsoft)の登録商標ウィンドウズ(登録商標Windows)オペレーティングシステム内の管理者など)の必要なしに実行されることが可能である。標準のもとで定義されていない任意の特別な操作には、管理者モードでなければ利用できないプライベートコマンドインタフェースの使用が必要とされる。そのような特別なコマンドの例としては、セキュア記憶デバイスへのパスワードの伝達や、USBデバイスのクロックの設定などがある。
いくつかのタイプの周辺媒体については、媒体がコンピュータに接続されたことをオペレーティングシステムが認識した場合に、媒体上に記憶された事前定義されたファイルを、オペレーティングシステムが自動的に実行する。例えば、登録商標ウィンドウズ(登録商標Windows)システムのCDドライブ内にデータCDが挿入された場合、オペレーティングシステムは、「autorun.inf」と呼ばれる、CD上のファイルを検出して実行する。この機能は、キーチェーン記憶デバイスなどの、単純なリムーバブル記憶デバイスでは利用できない。
オペレーティングシステムのこれらの制限は、任意のタイプの通信を可能にし、自動実行機能を含める、キーチェーン記憶デバイスのための特別なデバイスドライバを、ホストコンピュータ内にインストールすることにより克服することが可能である。
そのようなデバイスドライバは、特別な開発を必要とし、さらに、USBメモリモジュールの接続先として意図されたすべてのパーソナルコンピュータ上へのインストールを必要とする。キーチェーン記憶デバイスは、ユーザが作業を行う各コンピュータ上で一様に動作することが期待されているため、これは大きな欠点である。その上、セキュリティのために、そのようなデバイスドライバのアクセスは、登録商標ウィンドウズ(登録商標Windows)によって、管理者特権を有するユーザに制限される。管理者特権は、通常、ユーザは利用できない。会社内で管理者特権を有しているマネージャでさえ、インターネットカフェなどの会社外の場所でそのような特権を与えられる見込みはない。
本発明は、既存のオペレーティングシステムを使用した、キーチェーン記憶デバイスのドライバなしの動作を可能にし、その上、自動実行およびプライベートコマンドインタフェースも有効にするための方法を提供する。
本発明の第1の目的は、プライベートコマンド内でキーチェーン記憶デバイスと通信するためには管理者特権を使用するという、従来技術における必要性を克服することである。
本発明の第2の目的は、キーチェーン記憶デバイスがホストコンピュータ内に挿入された場合に任意のユーザアプリケーションを自動実行するための、方法を提供することである。
したがって、本発明によれば、(a)ホストコンピュータから受信したコマンドを実行するためのマイクロコントローラと、(b)ホストコンピュータの任意のユーザから受信した第1のセットのコマンドを、マイクロコントローラに渡すための、第1の仮想デバイスと、(c)ホストコンピュータの任意のユーザから受信した第2のセットのコマンドを、マイクロコントローラに渡すための、第2の仮想デバイスとを含む、ホストコンピュータとともに使用するための周辺デバイスが提供される。
さらに、本発明によれば、ホストコンピュータと、ホストコンピュータに動作可能な仕方で接続された周辺デバイスとを含むシステム(周辺デバイスは、マイクロコントローラと、複数のセクタを有するメモリと、第1のセットのコマンドを、ホストコンピュータの任意のユーザから受信した場合に、実行のためにマイクロコントローラに渡し、第2のセットのコマンドを、ホストコンピュータの特権ユーザから受信した場合にのみ、実行のためにマイクロコントローラに渡すように動作する第1の仮想デバイスとを含む)において、ホストコンピュータの任意のユーザが、第2のセットのコマンドを、マイクロコントローラにより実行されるようにすることを可能にするための方法が提供され、前記方法は、(a)第2のセットのコマンドを、ホストコンピュータの任意のユーザから受信した場合に、実行のためにマイクロコントローラに渡すように動作する第2の仮想デバイスを、周辺デバイス内に含めるステップと、(b)周辺デバイスをホストコンピュータに、動作可能な仕方で接続するステップと、(c)ホストコンピュータのユーザによる、第2のセットのコマンドを、ホストコンピュータから周辺デバイスに送信するステップと、(d)ユーザが特権ユーザである場合は、第2のセットのコマンドを、第1の仮想デバイスを経由して、マイクロコントローラに送信するステップと、(e)それ以外の場合は、第2のセットのコマンドを、第2の仮想デバイスを経由して、マイクロコントローラに送信するステップとを含む。
本発明によれば、さらに、ホストコンピュータとともに使用するための周辺デバイスが提供され、前記周辺デバイスは、(a)ホストコンピュータから受信したコマンドを実行するためのマイクロコントローラと、(b)ホストコンピュータからのコマンドをマイクロコントローラに渡すための第1の仮想デバイスと、(c)周辺デバイス内に第2の仮想デバイスが存在することをホストコンピュータが検出した場合のオートランをサポートする、第1の仮想デバイスとは独立した、第2の仮想デバイスとを含む。
本発明の基本的な周辺デバイスは、ホストコンピュータから受信したコマンドを実行するためのマイクロコントローラと、2つの仮想デバイスとを含む。第1の仮想デバイスは、第1のコマンドセットのコマンド(例えば、周辺デバイスがマスストレージデバイスである場合は、データアクセスコマンド)を、ホストコンピュータのユーザがいかなる特権レベルを有していようとも、マイクロコントローラに渡す。好ましくは、第1の仮想デバイスは、さらに、第2のコマンドセットのコマンド(例えば、周辺デバイスがマスストレージデバイスである場合は、特別なコマンド)を、それらのコマンドが特別な特権を有するユーザにより発行された場合(例えば、ユーザが管理者またはスーパユーザである場合)のみ、マイクロコントローラに渡す。第2の仮想デバイスは、第2のセットのコマンドを、ホストコンピュータのユーザがいかなる特権レベルを有していようとも、マイクロコントローラに渡す。好ましくは、第2の仮想デバイスは、ホストコンピュータの任意のユーザからの任意のコマンドを、マイクロコントローラに渡す。これが実現される1つの方法は、第2の仮想デバイスのネイティブコマンドとしてフォーマットされたコマンドを、第2の仮想デバイスから受信するように、そして、ネイティブコマンドを、意図されたコマンドとして再解釈するように、マイクロコントローラを動作させることによるものである。
好ましくは、周辺デバイスは、さらに、ホストコンピュータへの周辺デバイスの動作可能な接続が始動された場合にオートランをサポートする、第3の仮想デバイスも含む。
好ましくは、周辺デバイスは、さらに、ホストコンピュータへの周辺デバイスの動作可能な接続を生じさせるための、USBインタフェースなどのインタフェースも含む。インタフェースがUSBインタフェースである場合、第1の仮想デバイスはUSBマスストレージインタフェースであることが好ましい。
好ましくは、インタフェースは、ホストコンピュータへの、両方の仮想デバイスの動作可能な接続を同時に生じさせ、それによりホストコンピュータは、インタフェースがそれ自身を再構成する必要なしに、いずれかの仮想デバイスを経由してマイクロコントローラにコマンドを送信するというオプションを有するようになる。例えば、インタフェースがUSBインタフェースである場合、ホストコンピュータにとっての、両方の仮想デバイスのこの同時利用可能性は、2つの仮想デバイスを、ホストコンピュータによってともに列挙されるように動作させることによりもたらされる。あるいは、インタフェースは、ホストコンピュータへの、仮想デバイスの交互に動作可能な接続を生じさせる。任意の時点において、ホストコンピュータは、マイクロコントローラに、第1の仮想デバイスまたは第2の仮想デバイスのいずれかを経由して、ただし両方を経由してではなく、アクセスすることが可能である。例えば、インタフェースがUSBインタフェースである場合、ホストコンピュータにとっての、仮想デバイスのこの交互の利用可能性は、2つの仮想デバイスを、ホストコンピュータによって交互に列挙されるように(両方の仮想デバイスがともに列挙されるようにではなく、第1の仮想デバイスが列挙されるか、または第2の仮想デバイスが列挙されるように)動作させることによりもたらされる。
最も好ましくは、最初の2つの仮想デバイス、および第3の仮想デバイス(存在する場合)は、インタフェースのサブインタフェースである。
本発明の周辺デバイスの1つの好ましい実施形態では、第1および第2の仮想デバイスは、周辺デバイス内の独立した第1および第2の物理デバイス内にそれぞれ実装される。周辺デバイスは、さらに、ホストコンピュータへの、周辺デバイスの動作可能な接続を生じさせるためのインタフェースも含み、好ましくは、さらに、第2の物理デバイスをインタフェースに、動作可能な仕方で可逆的に接続するためのスイッチも含む。インタフェースがUSBインタフェースである場合、好ましくは、第2の物理デバイスは、インタフェースのUSB HIDサブインタフェースである。最も好ましくは、HIDデバイスは、第2のセットのコマンドが、厳密に言えば、HIDデバイスがホストコンピュータから受信するように正式に構成されたコマンドに含まれていない場合でも、第2のセットのコマンドをマイクロコントローラに示すための、複数の仮想マルチレベルLEDなどの機構と、第2のセットのコマンドの結果をホストコンピュータに示すための、複数の仮想ユーザスイッチなどの機構とを含む。
周辺デバイスが第3の仮想デバイスも含む場合、第3の仮想デバイスも、第1の仮想デバイス内に実装される。インタフェースがUSBインタフェースである場合、第1の物理デバイスは、好ましくは、全体的なインタフェースのマルチLUN USBサブインタフェースである。
本発明の周辺デバイスの別の好ましい実施形態では、第1および第2の物理デバイスは、共通の物理デバイス内に実装される。好ましくは、周辺デバイスは、複数のセクタを含むメモリも含む。第1のコマンドセットは、メモリのそれぞれの指定されたセクタにデータを書き込むための、書き込みコマンドを含む。非特権ユーザからの第2のセットのコマンドを共通の物理デバイスがマイクロコントローラに渡すようにさせるために、ユーザはそのコマンドを、第1のセットの書き込みコマンド(その指定されたセクタは、第2のセットのコマンドのために予約されたセクタである)の中のデータとして埋め込む。予約されたセクタは、静的に、または動的に予約されたものであってもよい。
周辺デバイスは、好ましくは、ホストコンピュータへの周辺デバイスの動作可能な接続を生じさせるためのインタフェースを含む。インタフェースがUSBインタフェースである場合、好ましくは、共通の物理デバイスは、インタフェースのマルチLUN USBサブインタフェースである。
本発明の方法は、マイクロコントローラと、複数のセクタを有するメモリと、第1の仮想デバイスとを含む周辺デバイスを、ホストコンピュータと組み合わせて、より効果的に使用することを目指している。第1の仮想デバイスは、第1のコマンドセットのコマンドを、ホストコンピュータのユーザがいかなる特権レベルを有していようとも、実行のためにマイクロコントローラに渡す。第1の仮想デバイスは、第2のコマンドセットのコマンドを、それらのコマンドが特別な特権を有するユーザにより発行された場合(例えば、ユーザが管理者またはスーパユーザである場合)のみ、実行のためにマイクロコントローラに渡す。
本発明の基本的な方法は、任意のユーザが第2のセットのコマンドを発行することを可能にし、そして、それらのコマンドが周辺デバイスのマイクロプロセッサによって実行されるようにする。本発明の基本的な方法は、4つのステップを有する。第1のステップでは、第2の仮想デバイスが周辺デバイス内に含められる。第2の仮想デバイスは、第2のコマンドセットのコマンドを、ホストコンピュータのユーザがいかなる特権レベルを有していようとも、実行のためにマイクロコントローラに渡す。第2のステップでは、周辺デバイスがホストコンピュータに、動作可能な仕方で接続される。第3のステップでは、ユーザは、第2のコマンドセットのコマンドを周辺デバイスに送信する。第4のステップでは、第2のコマンドセットのコマンドが、ユーザが適切な特別な特権を有している場合は第1の仮想デバイスによって、そしてそれ以外の場合は第2の仮想デバイスによって、マイクロコントローラに実行のために送信され、その動作が、マイクロコントローラにより、第2のセットのコマンドとして解釈される。
好ましくは、本発明の方法は、第2のステップで周辺デバイスがホストコンピュータに動作可能な仕方で接続された場合のオートランをサポートする、第3の仮想デバイスを、周辺デバイス内に含めるという、さらなる初期ステップも含む。オートランは、ユーザが特別な特権を有しているかどうかを判定するため、第2のコマンドセットのコマンドをマイクロプロセッサに渡すための、第2の仮想デバイスは必要としない。
本発明の方法の1つの好ましい実施形態では、第1および第2の仮想デバイスは、周辺デバイス内の独立した第1および第2の物理デバイス内にそれぞれ実装される。本方法は、第2のセットのコマンドを第1の仮想デバイスを経由してマイクロプロセッサに送信するために必要な特別な特権をユーザが有していない場合にのみ、第2の物理デバイスをホストコンピュータに動作可能な仕方で接続する、さらなるステップを含む。
本発明の別の好ましい実施形態では、第1および第2の仮想デバイスは、共通の物理デバイス内に実装される。本方法は、第2のコマンドセットのコマンドを内部に埋め込んだ第1のコマンドセットのコマンドを認識するように、共通の物理デバイスを構成する、さらなるステップを含む。第2のコマンドセットのコマンドは、そのコマンドを第1のコマンドセットのコマンド内に埋め込み、第1のコマンドセットのそのコマンドを周辺デバイスに送信することにより、周辺デバイスに送信される。周辺デバイスにおいては、共通の物理デバイスが、第1のコマンドセットのコマンドから、第2のコマンドセットのコマンドを抽出する。好ましくは、第1のコマンドセットのコマンド(その内部に第2のコマンドセットのコマンドが埋め込まれている可能性があると、共通の物理デバイスによって認識されるもの)は、第2のセットのコマンドのために予約されたメモリセクタへの書き込みのための、書き込みコマンドである。第2のセットのコマンドは、その予約されたセクタに書き込まれるべきデータとして、第1のセットのコマンドの内部に埋め込まれる。セクタは、静的に、または動的に予約されてもよい。
本発明の別の基本的な周辺デバイスは、ホストコンピュータおよび2つの仮想デバイスから受信したコマンドを実行するための、マイクロコントローラを含む。第1の仮想デバイスは、コマンドをマイクロコントローラに渡す。第2の仮想デバイスは、第1の仮想デバイスから独立しており、周辺デバイス内に第2の仮想デバイスが存在することをホストコンピュータが検出した場合のオートランをサポートする。
好ましくは、周辺デバイスは、ホストコンピュータへの周辺デバイスの動作可能な接続を生じさせるためのインタフェースも含み、2つの仮想デバイスはインタフェースのサブインタフェースである。より好ましくは、インタフェースはUSBインタフェースである。最も好ましくは、第1の仮想デバイスは、USBマスストレージインタフェースであり、第2の仮想デバイスは、インタフェースのUSB CDサブインタフェースである。
好ましくは、2つの仮想デバイスは、共通の物理デバイス内に実装される。最も好ましくは、周辺デバイスは、ホストコンピュータへの周辺デバイスの動作可能な接続を生じさせるためのインタフェースも含み、共通の物理デバイスは、インタフェースのマルチLUN USBサブインタフェースである。
本発明を、添付の図面を参照して、あくまで例示として以下に説明する。
本発明は、接続先のホストコンピュータの任意のユーザにより完全にアクセスされることが可能な、着脱可能な記憶デバイスに関する。特に、本発明は、管理者特権を有さないユーザが、マスストレージクラスUSBデバイスに、特別なコマンドを発行することを可能にするために使用されてもよい。
本発明による着脱可能な記憶デバイスの原理および動作は、図面および添付の説明を参照することにより、よりよく理解されるであろう。
ここで図面を参照すると、図1は、全体が100で表される、本発明に関連する従来技術のシステムを示している。システム100は、パーソナルコンピュータ(PC)110、およびデータ交換のためにUSB接続141を介して接続可能なUSBキーチェーン記憶デバイス120を含む。
キーチェーン記憶デバイス120は、PC110のユーザに、デバイスの不揮発性メモリ121内にデータを記憶する機能と、任意選択で、セキュリティ機能、データ圧縮、または信号処理などの、追加機能122とを提供する。デバイス120は、機能122およびメモリ121を一方で管理し、USBマスストレージクラス(MSC)インタフェース124を介した通信を他方で管理する、マイクロコントローラ123を含む。USB MSCインタフェース124は、マスストレージクラスデバイスのためのUSB規格により定義される。PC110がUSBホストインタフェース113を有し、PC110のオペレーティングシステム(OS)112がUSB MSCデバイスのためのサポートを含む場合、この定義は、任意のPC110がUSB接続141を経由してキーチェーン記憶デバイス120とインタフェースすることを可能にする。その場合、PC110のユーザは、PC110の機能111をアプリケーションプログラム内で使用して、例えば、デバイス120へのファイルの書き込み、ファイルの暗号化、圧縮されたファイルの読み出し、またはデバイス120上に記憶された指紋の認識のために、キーチェーン記憶デバイス120を利用することができる。
図2は、USBキーチェーン記憶デバイス120内のコマンドフローを示す。USB規格で定義されているように、USB MSCインタフェース124は、USBコネクタと、ケーブル布線と、USB端点のリストとを通信のために備えた、USBインタフェース135を含む。キーチェーン記憶デバイス120は、PC110によって、USBマスストレージクライアント131として識別される。このクライアント131は、アクセスコマンド132、プライベートコマンド133、およびオートラン134という、複数のコマンドタイプを受け入れることが可能である。
アクセスコマンド132は、キーチェーン記憶デバイス120上に記憶されたデータに、通常のディスクと同様にアクセスするために使用される。そのようなコマンドの例としては、「リード・ディスク・セクタ(read disk sector)」、「ライト・ディスク・セクタ(write disk sector)」、および「ゲット・ディスク・サイズ(get disk size)」などがある。
任意選択のプライベートコマンド133は、ディスクライクな記憶機能ではない任意の追加機能122を実装するために使用される。これらの機能は、使用するデバイス120のタイプにより異なる。例えば、セキュア記憶デバイス120は、パスワードを送信するため、またはセキュアモードと非セキュアモードとの間を切り換えるための、プライベートコマンド133を受け入れる。バイオメトリックキーデバイス120は、ユーザの指紋を確認するためのプライベートコマンド133を受け入れる。信号処理キーデバイス120は、音声または映像データを、符号化および復号化するためのプライベートコマンド133を受け入れる。
オートラン134は、キーチェーン記憶デバイス120がUSB接続141を経由してPC110に接続された場合の、PC110上のアプリケーションの自動実行を可能にする、任意選択の機能である。OS112が、このクラスのデバイス120のためのオートラン134を認識した場合、PC110が接続を認識すると、PC110は、キーチェーン記憶デバイス120から特定のデータを自動的に読み出して、このデータ内に記述されたプログラムを実行する。そのようなデータの例は、データCD−ROM上のいずれのアプリケーションが実行されるべきかを記述するファイル「autorun.inf」である。
オペレーティングシステム112は、一般に、マスストレージクラスデバイス131がアクセスされることが可能な方法を制限する。例えば、登録商標ウィンドウズ(登録商標Windows)では、PC110のユーザが管理者特権を有していない場合、そのユーザは、USBマスストレージクライアント131にプライベートコマンド133を送信することはできない。
オペレーティングシステム112は、一般に、オートラン134機能も、特定のデバイスタイプに制限する。ほとんどのオペレーティングシステム112は、一般的なマスストレージクライアント131内のオートラン機能を認識しない。
これらの問題を克服するために、従来技術のキーチェーン記憶デバイス120では、メモリ121を管理するためのアクセスコマンド132だけでなく、プライベートコマンド133などのキーチェーン記憶デバイス機能122も使用するために、オペレーティングシステム112に別のデバイスドライバを追加することが要求される。このデバイスドライバは、キーチェーン記憶デバイス120が接続される各PC110上にインストールされていなければならない。デバイスドライバがインストールされていない場合は、キーチェーン記憶デバイス120の単純な記憶121機能のみが使用可能となる。もちろん、これはデバイスドライバによる解決策の大きな欠点である。本発明は、この問題を解決するための異なる手法を提示する。
本発明の好ましい実施形態150を示す、図3をここで参照する。図2の従来技術と比較すると、図3に示す本発明は、上で説明した異なるタイプのコマンド(アクセスコマンド132、任意選択のプライベートコマンド133、およびオートラン134)のために使用される、複数の仮想USBデバイス151、153、および155を備えている。使用される異なるデバイスの数は、アプリケーションに固有である。本発明の他の好ましい実施形態は、そのような仮想デバイスを2つだけ(例えば、以下で説明するように、仮想デバイス151および155のみ)含み、または、そのような仮想デバイスを4つ以上含む。
キーチェーン記憶デバイス150は、仮想USBデバイス151、153、および155に加えて、USBインタフェース157、マイクロコントローラ158、不揮発性メモリ159、および内蔵機能160を含む。USBインタフェース157は、デバイス151、153、および155を含む複合USBデバイスのためのインタフェースである。USB仮想デバイス151、153、および155は、USBインタフェース157のサブインタフェースである。USBインタフェース157は、USB通信リンク143を経由してPC110と通信を行う。デバイス151は、クライアント131に類似したUSBマスストレージクライアントであり、キーチェーン記憶デバイス150のデータアクセスインタフェースを含む。キーチェーン記憶デバイス150のディスクライクな記憶機能を使用する、PC110上の機能111は、このUSBデバイス151を参照する。デバイス153は、プライベートコマンド154のために本発明により使用されるUSBデバイスである。このデバイス153は、PC110の非特権ユーザにとってさえも、OS112からアクセスすることが可能なタイプのUSBデバイスである。マイクロコントローラ158は、デバイス153により受信されたコマンドを、プライベートコマンド154として再解釈する。デバイス155は、オートラン機能156を実装するために使用されるUSBデバイスである。このデバイス155は、それに対してOS112がオートラン機能156を作動させるタイプのUSBデバイスである。そのようなデバイスの一例は、USB CDデバイスである。仮想デバイス155は仮想デバイス151から独立しているため、OS112が仮想デバイス151内のオートラン機能を認識しない場合でも、記憶デバイス150はオートランをサポートする。OS112は、デバイス151とデバイス155の両方を並行して認識し、したがって、両方のデバイスのすべての機能を利用することができる。
マイクロコントローラ158は、すべての異なるUSB仮想デバイス151、153、および155からの情報を収集し、受信した要求を、メモリ159リソースおよびその他の内蔵機能160を使用して処理する。
キーチェーン記憶デバイス150は、ディスクライクなデータアクセス152と、特別な特権なしにOS112からアクセス可能なプライベートコマンド154インタフェースと、オートラン機能156という、本発明の3つの主要な特徴を含む。
図4Aおよび図4Bは、図3のキーチェーン記憶デバイス150の2つの異なる物理実装を示す。プライベートコマンドを通信するためにUSBヒューマンインタフェースデバイス(HID)クラスを使用し、オートラン機能を実行するためにUSB CDデバイスを使用する、USBキーチェーン記憶デバイス150の物理実装の概略を示す、図4Aをここで参照する。HIDデバイスは、非管理者にとってさえも常にアクセス可能であり、その理由は、これらのデバイスは、任意のユーザにとって(特別な特権を有していないユーザにとってさえも)常にアクセス可能であるべき、キーボード、マウス、またはゲームパッドなどの他のデバイスとインタフェースするように設計されているためである。登録商標ウィンドウズ(登録商標Windows)内のCDデバイスドライバは、オートラン機能を含む。この実装の背後にある着想は、OS112から利用可能なCDオートランを使用して、キーチェーン記憶デバイス150のオートラン機能を実装するということ、および、非特権ユーザにとって自由にアクセス可能なHIDインタフェースを使用して、非管理モードプライベート通信を実装するということである。
図4Aのキーチェーン記憶デバイス150は、USBヒューマンインタフェースデバイス(HID)230、USB CDデバイス220、およびUSB記憶デバイス210という、3つの独立したUSB仮想デバイスを備えている。CDデバイス220および記憶デバイス210は、両方ともUSBマスストレージクラス定義に属し、USB規格に従って、CDデバイス220および記憶デバイス210によって構成されるマルチLUN記憶デバイスサブインタフェース201としてグループ化される。
図4Aの実装内の、データアクセスコマンド212のためのインタフェースは、記憶デバイス210を経由する。オートラン221機能は、CDデバイス220を経由して利用可能である。プライベートコマンドは、PC110上でのユーザの特権により、2つの異なるインタフェースを介して利用可能である。
特権(登録商標ウィンドウズ(登録商標Windows)の管理者(Administrator))モードでは、プライベートコマンドは、特権ユーザにとって利用可能なUSB記憶デバイスプライベートコマンドインタフェース211を使用して、USB記憶デバイス210を経由して送信される。このUSB記憶クラスプライベートコマンドインタフェース211は、機能111が任意のプライベートデータ構造をディスクライクなデバイスに送信することを可能にするために、OS112により提供される方法である。図4Aのキーチェーン記憶デバイス150は、このインタフェースを、従来技術のキーチェーン記憶デバイス120が使用するのと同じ方法で使用する。
非特権モードでは、プライベートコマンドは、非特権モードプライベートコマンド231を使用して、USB HIDインタフェース230を経由して送信される。スイッチ202は、ユーザにより必要とされる場合のみ、つまり、PC110上で非特権モードで動作している場合のみ、HIDデバイス230を有効にするために使用される。通常、HIDデバイスは、マスストレージデバイスと同様に、限定されたコマンドのセットのみを受け入れるように構成されている。したがって、HIDデバイス230を使用して、図4Aのキーチェーン記憶デバイス150にプライベートコマンド231を通信するために、PC110は、プライベートコマンド231を、HIDデバイス230が受け入れ可能な形態にフォーマットし、それに応じて、マイクロコントローラ158は、HIDデバイス230により受信されたコマンドをプライベートコマンド231として解釈する。例えば、本発明の1つの好ましい実施形態では、HIDデバイス230は、複数の仮想マルチレベルLED(各LEDについて8ビット)、および複数の仮想ユーザスイッチを含むものと定義される。HIDデバイス230は、さらに、LEDをオンおよびオフにするための、ならびに、ユーザスイッチの設定をPC110に返すための、ネイティブコマンドのセットに応答するものと定義される。LEDは、コマンドのデータバイトを8ビットLEDに単に書き込むことにより、プライベートコマンド231を渡すための、PC110からの情報チャネルとして機能する。スイッチは、プライベートコマンド231からの結果をPC110が読み戻すための方法として機能する。これが実現される理由は、プライベートコマンド231そのものが8ビットLEDを使用して符号化されるのと同様に、マイクロコントローラ158は、応答のバイトを、それらのスイッチを使用して符号化することができるためである。この機構は、図4Aのキーチェーン記憶デバイス150に任意のコマンドを送信するために使用できることに注意されたい。図4Aのキーチェーン記憶デバイス150にデータアクセスコマンドを送信するには、記憶デバイス210を利用できるため、ここで強調されるのは、図4Aのキーチェーン記憶デバイス150にプライベートコマンドを送信するには、HIDデバイス230が使用されるということである。
PC110のユーザ機能111は、非管理モードで動作している場合、図4Aのキーチェーン記憶デバイス150に、HIDインタフェースが必要とされるということを信号で伝えなければならない。これは、USB CDデバイス220にコマンドを送信することにより行われてもよい。例えば、USB CDデバイス220に、交互のイジェクト(eject)およびロード(load)コマンドによる固有の列を送信すると、スイッチ202が閉じられる。次に、PC110は、USBデバイス150を再び列挙するように要求される。再列挙の後は、HIDデバイス230がシステムによって認識され、任意のさらなるプライベートコマンド231は、HIDインタフェース230を経由して、図4Aのキーチェーン記憶デバイス150に送信される。任意選択で、マルチLUN記憶デバイスサブインタフェース201は、再列挙に応答せず、それによりPC110は、キーチェーン記憶デバイス150を、HIDデバイス230のみを含むものとして取り扱うようになる。この任意選択のもとでは、別の再列挙のために、ユーザ機能111がキーチェーン記憶デバイス150に、スイッチ202を開いてサブインタフェース201を再びアクティブにすることを命令できるように、HIDデバイス230への特別なプライベートコマンド231が定義されなければならない。
図3のキーチェーン記憶デバイス150の代替の物理実装を示す、図4Bをここで参照する。図4Bの実装では、記憶データアクセス152、プライベートコマンド154、およびオートラン156という3つの機能すべてを提供するために、1つのマルチLUN USB記憶デバイスサブインタフェース201を使用する。マルチLUN記憶デバイスサブインタフェース201は、USB CDデバイス220'およびUSB記憶デバイス210'を備えている。
図4Bの実装では、オートランは、オートラン221を実装する仮想USB CDデバイス220'を使用することによって実装される。これは、図4Aの実装について説明したのと同じ方法で行われる。
USB記憶デバイス210'は、データアクセスコマンド212を処理する。USB記憶デバイス210'は、さらに、特権(管理者)ユーザがプライベートコマンドを通信するためのインタフェース211を提供する。再び、これは、図4Aの実装について説明したのと同じ方法で行われる。非特権ユーザは、データアクセスコマンド212内にプライベートコマンドをパッケージすることによって、プライベートコマンドの通信を行う。
データアクセスコマンド212は、宛先アドレス、トランザクションタイプ、およびデータという、3つの部分を有する。宛先アドレスは、ヘッド、シリンダ、およびセクタアドレスにより構成される、ディスクセクタアドレスである。宛先アドレスは、ディスクドライブ上の1つのセクタを一意に識別する。このアドレスは、マイクロコントローラ158によって、メモリ159内のアドレスに変換される。トランザクションタイプは、PC110からキーチェーン記憶デバイス150へのデータ転送、またはキーチェーン記憶デバイス150からPC110へのデータ転送に対応した、書き込み動作、または読み出し動作のいずれかである。データ部分は、トランザクション内で転送されるデータである。データは、トランザクションタイプによって、PC110からキーチェーン記憶デバイス150へ、またはキーチェーン記憶デバイス150からPC110へ転送されてもよい。
図4Bの実装内での非管理モードプライベートコマンド213は、特定のディスクセクタへのデータアクセスコマンド212を使用して、USB記憶デバイス210'を経由して通信される。マイクロコントローラ158は、USB記憶デバイス210インタフェースからアクセス要求を受信し、要求されたアクセスが、プライベートコマンド位置として指定された位置(例えば、ディスクセクタ)に属すると識別された場合は、コマンドのデータ部分がマイクロコントローラ158によって処理される。それ以外の場合は、アクセスは通常のデータアクセス212として扱われ、データは、記憶159へ転送されるか、または記憶159から転送される。PC110から図4Bのキーチェーン記憶デバイス150へのプライベートコマンドを実装するには、書き込みトランザクションが使用される。図4Bのキーチェーン記憶デバイス150から結果を読み戻すには、読み出し動作がPC110により使用される。
非管理モードでのプライベートコマンド通信213のために割り当てられるディスクセクタは、PC110上の非特権ユーザにとってアクセス可能でなければならない。非特権ユーザは、ディスクセクタへの直接アクセスを実行することはできず、OS112のファイルシステムを介して記憶デバイス150にアクセスできるのみである。したがって、プライベートコマンド213のために使用される特別な通信セクタは、USB記憶デバイス210の内部のファイルシステム上のファイルにマッピングされていなければならない。これは、2つの方法のうちの1つで実現されてもよい。
第1の方法は、静的に予約されるセクタを使用する。USB記憶デバイス210'がフォーマットされる際に、既知のディスクセクタ内に記憶される、デバイスのファイルシステム内のファイルが作成される。マイクロコントローラ158は、すべてのディスクアクセス212を構文解析して、そのセクタへのアクセスを探す。そのようなアクセスがマイクロコントローラ158によって検出された場合は、トランザクションタイプに従った動作が実行される。トランザクションが書き込みトランザクションである場合は、トランザクション内のデータがプライベートコマンド213として構文解析される。トランザクションが読み出しトランザクションである場合は、マイクロコントローラ158が、要求されたデータを、データアクセス212のデータフィールド内に返し、それにより、プライベートコマンド213を使用してPC110に応答する。予約されたセクタはファイルに属するため、予約されたセクタはファイルシステム内で「使用済み」として印付けられ、OS112はそのセクタを他のいかなるファイルのためにも使用することを試みない。
第2の方法は、動的に予約されるセクタを使用する。特定のセクタが、プライベートコマンド213のために使用されるセクタとして、データアクセスコマンド212によってアクセス可能であるとして、動的に印付けられる。トランザクションが終了したら、動的に印付けられたセクタは解放される。プライベートコマンドチャネル213を作成するために、PC110上の機能111は、USB記憶デバイス210'上に新しいファイルを作成し、特定の初期化データをそのファイルに書き込む。図4Bのキーチェーン記憶デバイス150は、この情報を、USB記憶デバイス210'のデータアクセスコマンド212を経由して受信する。マイクロコントローラ158は、コマンド内のデータを構文解析して、データフィールド内の固有の初期化データを検出する。マイクロコントローラ158は、次に、動的に予約されたセクタを、プライベートコマンド213のための通信セクタとして印付ける。任意のさらなるアクセスは、静的に予約されたセクタの使用における場合と同様に、プライベートコマンド213として構文解析される。これにより、PC110の機能111は、プライベートコマンドデータを使用して、PC110が作成した特別なファイルを上書きすることにより、予約されたセクタに再びアクセスすることが可能になる。このファイルの使用を終了するには、通信の終了を通知するプライベートコマンド213が送信され、マイクロコントローラ158は、予約されたセクタへのアクセスの監視を停止する。
図5Aおよび図5Bは、それぞれ、図4Aおよび図4Bに示した実装オプションの一般的な動作のフローチャートである。図4Aのキーチェーン記憶デバイス150の動作モードを提示する、図5Aをここで参照する。手順はステップ401において開始され、ここでは、キーチェーン記憶デバイス150とPC110とは切り離されている。ステップ402で、キーチェーン記憶デバイス150は、PC110に接続され、USB CDデバイス220およびUSB記憶デバイス210を含むマルチLUN記憶デバイス201として識別される。ステップ403で、オートランアプリケーションがUSB CDデバイス220から実行される。登録商標ウィンドウズ(登録商標Windows)プラットフォーム上では、これは、USB CDデバイス220からファイル「autorun.inf」を読み出して、そのファイル内にリストされたアプリケーションを実行することを意味している。ステップ404で、自動的に実行されたアプリケーション(または任意のその他の機能111)は、PC110のユーザが管理者権限を有しているかどうかを検査する。ユーザが管理者権限を有していない場合、フローはステップ405に進み、そこで、PC110のアプリケーションは、キーチェーン記憶デバイス150に、スイッチ202を閉じることによってHIDインタフェース230をオンにするように信号で伝える。スイッチ202が閉じられた後で、キーチェーン記憶デバイス150は、それ自身をPC110から論理的に切り離し、HIDデバイス230をアクティブにして、それ自身を再接続する。PC110は、USBインタフェース157を列挙し、USB HIDデバイス230と、USB CDデバイス220およびUSB記憶デバイス210を備えたマルチLUN記憶デバイス201とを検出する。ステップ406で、プライベートコマンド231のためのHIDインタフェース230が、いくつかの初期化プライベートコマンドをキーチェーン記憶デバイス150に送信するために使用される。例えば、プライベートコマンドは、パスワード保護されたキーチェーン記憶デバイス150にパスワードを送信するために使用されうる。ステップ407で、PC110の機能111は、いくつかのコマンドをキーチェーン記憶デバイス150に送信することを決定する。ステップ408で、機能111は、キーチェーン記憶デバイス150に、プライベートコマンド231を送信するべきか、またはデータアクセスコマンド212を送信するべきかを検査する。データアクセスコマンド212が要求される場合、ステップ410で、USB記憶デバイス210にコマンドが送信される。プライベートコマンド231が要求される場合、ステップ409で、HIDデバイス230にコマンドが送信される。コマンドの転送後は、必要とされる任意のさらなるコマンドのために、フローはステップ407に戻る。ステップ404に戻って、ユーザが、PC110上の管理者である場合、フローはステップ411に進み、そこで、USBマスストレージクラスプライベートコマンドインタフェース211を経由してプライベートコマンド211が送信される。ステップ412で、PC110上の機能111は、キーチェーン記憶デバイス150にいくつかのコマンドを送信することを決定する。ステップ413で、機能111は、キーチェーン記憶デバイス150に、プライベートコマンド211を送信するべきか、またはデータアクセスコマンド212を送信するべきかを検査する。データアクセスコマンド212が要求される場合、ステップ415で、USB記憶デバイス210にコマンドが送信される。プライベートコマンド211が要求される場合、ステップ414で、USB記憶デバイス210にコマンドが送信される。コマンドの転送後は、必要とされる任意のさらなるコマンドのために、フローはステップ412に戻る。
登録商標ウィンドウズ(登録商標Windows)オペレーティングシステム内のバグにより、現在のところ、管理者特権を有するユーザでさえも、データアクセスコマンドおよびプライベートコマンドの両方を、図4Aに示す物理実装を有するキーチェーン記憶デバイス150に送信することは妨げられる。このバグが修正されるまでの間は、管理者特権を有するユーザでさえも、図5Aの「非管理」分岐を使用しなければならない。対応する、本発明のあまり好ましくない実施形態では、USB記憶デバイス210はプライベートコマンドインタフェース211を有さず、データアクセスコマンドインタフェース212のみを含む。このバグは、さらに、PC110がマルチLUNサブインタフェース201とHIDサブインタフェース230との両方をともに列挙することも妨げるため、HIDサブインタフェース230がアクティブである間はマルチLUNサブインタフェース201を非アクティブにするという、上記の任意選択が使用されなければならない。
図5Bをここで参照する。図5Aとの違いのみについて説明する。ステップ404で、ユーザがPC110上の管理者権限を有していない場合、フローはステップ505に進む。ステップ505で、プライベートコマンドインタフェース213が初期化される。プライベートコマンド213の通信に使用される特別なファイルが実装に含まれる場合、このファイルが、この段階で開かれる。プライベートコマンド213のための動的セクタ割り当てが実装に含まれる場合、セクタのためのファイルが作成され、そして、固有の初期化シーケンスを新しいファイルに書き込んでからファイルポインタを巻き戻すことにより、そのファイルがプライベートコマンドインタフェース213と関連付けられる。ステップ506で、プライベートコマンドがコマンドファイルインタフェース213に送信される。ステップ408まで、図5Aと同様にフローが継続される。プライベートコマンドが要求される場合、ステップ509で、特別なファイルインタフェース213を経由してこのコマンドが送信される。
上述のように、本発明の範囲は、さらに、データアクセスコマンドを受け入れるための(および特権ユーザからのプライベートコマンドも受け入れるための)仮想USBデバイス151などの、仮想USBデバイスと、オートランをサポートするための仮想USBデバイス155などの、独立した仮想USBデバイスとを有し、しかし、任意のユーザからのプライベートコマンドを受け入れるための仮想USBデバイス153などの、仮想USBデバイスは有さない、周辺記憶デバイスも含む。図4AからUSB HIDデバイス230およびスイッチ202が削除された場合、図4Aは、1つのそのようなデバイスの物理実装を示す。
本発明を、限定された数の実施形態に関して説明したが、本発明の多くの変形形態、修正形態、およびその他の応用例が作成されてもよいことが理解されるであろう。
本発明に関連する従来技術のシステムの単純化されたブロック図である。 本発明に関連する従来技術のUSBキーチェーン記憶デバイスの単純化されたブロック図である。 本発明の好ましい実施形態によるUSBキーチェーン記憶デバイスの単純化された一般的なブロック図である。 図3のデバイスの2つの物理実装の単純化されたブロック図である。 図3のデバイスの2つの物理実装の単純化されたブロック図である。 図4Aおよび図4Bに示す実装の好ましい動作モードを説明する概略フローチャートである。 図4Aおよび図4Bに示す実装の好ましい動作モードを説明する概略フローチャートである。
符号の説明
100 システム
110 パーソナルコンピュータ(PC)
111 PC110の機能
112 オペレーティングシステム(OS)
113 USBホストインタフェース
120 USBキーチェーン記憶デバイス
121 デバイスの不揮発性メモリ
122 追加機能
123 マイクロコントローラ
124 USBマスストレージクラス(MSC)インタフェース
131 USBマスストレージクライアント
132 アクセスコマンド
133 プライベートコマンド
134 オートラン
135 USBインタフェース
141 USB接続
150 キーチェーン記憶デバイス
151、153、および155 仮想USBデバイス
152 記憶データアクセス
154 プライベートコマンド
156 オートラン機能
157 USBインタフェース
158 マイクロコントローラ
159 メモリ
201 マルチLUN記憶デバイスサブインタフェース
210 USB記憶デバイス
211 USB記憶クラスプライベートコマンドインタフェース
212 データアクセスコマンド
220 USB CDデバイス
221 オートラン機能
230 USBヒューマンインタフェースデバイス(HID)
231 非特権モードプライベートコマンド
210' USB記憶デバイス
220' USB CDデバイス

Claims (2)

  1. 所定のオペレーションシステムによって制御されると共に少なくともディスクドライブドライバ、USBマスストレージクラスドライバ及びUSBホストコントローラを具備する外部装置への着脱が可能なUSBストレージデバイスであって、
    フラッシュメモリの記憶領域を、第1の領域と第2の領域とに分けて定義してなる記憶手段と、
    前記外部装置とUSBプロトコルに基づいた通信を行う通信手段と、
    前記通信手段を介して、前記記憶手段に対して情報の読み出し、書き込み及び削除を実行する制御手段と、
    を備え、
    前記制御手段は、
    前記第1の領域を情報の読み出し、書き込み及び削除を実行可能なディスクデバイスとして、前記第2の領域を情報の読み出しのみを実行可能なCD−ROMデバイスとして認識させるための情報を記憶し、
    前記ディスクドライブドライバからの指令に従って、前記認識させるための情報を前記USBマスストレージクラスドライバに供給して、当該USBマスストレージクラスドライバに、本USBストレージデバイスの前記各領域を、前記ディスクデバイス及び前記CD−ROMデバイスという異なる2つの種類のデバイスとして認識させるとともに、
    前記外部装置から受け取った指令と前記認識させるための情報とに基づいて、前記第1の領域に対しては情報の読み出し、書き込み又は削除を実行し、前記第2の領域に対しては情報の読み出しのみを実行することを特徴とするUSBストレージデバイス。
  2. USBストレージデバイスに搭載される制御装置であって、
    前記USBストレージデバイスに設けられたフラッシュメモリからなる記憶手段の第1の領域を情報の読み出し、書き込み及び削除を実行可能なディスクデバイスとして、前記記憶手段の第2の領域を情報の読み出しのみを実行可能なCD−ROMデバイスとして、前記USBストレージデバイスが装着されて用いられる外部装置のUSBマスストレージクラスドライバに認識させるための情報を記憶し、
    前記外部装置のディスクドライブドライバによるコマンドの発行に応答して、前記外部装置のUSBマスストレージクラスドライバへ前記認識させるための情報を供給して、前記USBマスストレージクラスドライバに、当該制御装置が搭載されたUSBストレージデバイスの前記各領域を、前記ディスクデバイス及び前記CD−ROMデバイスという異なる2つの種類のデバイスと認識させるとともに、
    前記外部装置から受け取った指令と前記認識させるための情報とに基づいて、前記第1の領域に対しては情報の読み出し、書き込み又は削除を実行し、前記第2の領域に対しては情報の読み出しのみを実行することを特徴とする制御装置。
JP2006125077A 2003-03-27 2006-04-28 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス Pending JP2006286008A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US45869003P 2003-03-27 2003-03-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006109750A Division JP2006202339A (ja) 2003-03-27 2006-04-12 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス

Publications (1)

Publication Number Publication Date
JP2006286008A true JP2006286008A (ja) 2006-10-19

Family

ID=33098275

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2006507589A Expired - Fee Related JP4554598B2 (ja) 2003-03-27 2004-03-25 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス
JP2006109750A Pending JP2006202339A (ja) 2003-03-27 2006-04-12 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス
JP2006125077A Pending JP2006286008A (ja) 2003-03-27 2006-04-28 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2006507589A Expired - Fee Related JP4554598B2 (ja) 2003-03-27 2004-03-25 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス
JP2006109750A Pending JP2006202339A (ja) 2003-03-27 2006-04-12 すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス

Country Status (4)

Country Link
US (2) US7237046B2 (ja)
EP (1) EP1609048A4 (ja)
JP (3) JP4554598B2 (ja)
WO (1) WO2004086363A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009090734A1 (ja) 2008-01-16 2009-07-23 I-O Data Device, Inc. Usb可搬装置

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7979700B2 (en) 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
AU2003300880A1 (en) 2002-12-12 2004-07-09 Flexiworld Technologies, Inc. Wireless communication between computing devices
EP1609048A4 (en) 2003-03-27 2009-01-14 Milsys Ltd DATA STORAGE DEVICE HAVING COMPLETE ACCESS FOR ALL USERS
CN107797953B (zh) * 2003-04-11 2021-10-08 富意科技公司 一种可实现自动运行的集成电路存储设备或方法
TW200424862A (en) * 2003-05-13 2004-11-16 Ours Technology Inc Usage of USB transmission line
KR20060060668A (ko) * 2003-07-28 2006-06-05 샌디스크 씨큐어 컨텐트 솔루션즈, 인코포레이티드 저장소 디바이스를 제어하는 시스템, 장치 및 방법
US20050066129A1 (en) * 2003-09-22 2005-03-24 Chi-Tung Chang Portable data storage device allowing dynamic setting of disk type and the method of dynamically setting disk type thereof
US7117288B2 (en) * 2003-10-24 2006-10-03 Motorola Inc. USB dynamic service switch for dual processor architecture
US7434232B2 (en) * 2003-11-07 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for writing to a drive when an application lacks administrator privileges
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7629963B1 (en) * 2003-12-22 2009-12-08 Cypress Semiconductor Corporation Method and apparatus for binding peripheral devices to a computer
ATE436047T1 (de) * 2003-12-30 2009-07-15 Wibu Systems Ag Verfahren zum steuern eines datenverarbeitungsgeräts
JP4740157B2 (ja) * 2004-02-03 2011-08-03 サンディスク セキュア コンテンツ ソリューションズ インコーポレイテッド デジタルデータコンテンツの保護
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
CN1313941C (zh) * 2004-03-10 2007-05-02 台均科技(深圳)有限公司 数据处理装置与操作系统进行数据交换的方法
US7383386B1 (en) * 2004-05-21 2008-06-03 Mcm Portfolio Llc Multi partitioned storage device emulating dissimilar storage media
US20050283479A1 (en) * 2004-06-16 2005-12-22 Advanced Micro Devices, Inc. System for controlling a multipurpose media access data processing system
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7808906B2 (en) 2004-07-23 2010-10-05 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
KR20070037648A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 주변장치에서 가상 사설망 게이트웨이로 패킷을 라우팅하기위한 방법 및 시스템
US7657657B2 (en) 2004-08-13 2010-02-02 Citrix Systems, Inc. Method for maintaining transaction integrity across multiple remote access servers
SG123627A1 (en) 2004-12-20 2006-07-26 Trek 2000 Int Ltd Method for overcoming system administration blockage
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US20060161665A1 (en) * 2005-01-14 2006-07-20 Hung-Chou Tsai Method of automatically logging in a website
US7392358B2 (en) * 2005-01-14 2008-06-24 Sandisk Corporation Delivery of a message to a user of a portable data storage device as a condition of its use
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
WO2006081032A2 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US7721115B2 (en) * 2005-02-16 2010-05-18 Cypress Semiconductor Corporation USB secure storage apparatus and method
US8073997B2 (en) * 2005-03-04 2011-12-06 Cambridge Silicon Radio Limited Software install automation
US20060282571A1 (en) * 2005-04-25 2006-12-14 Perception Digital Limited Multimedia devices with enhanced functionality
CN1316327C (zh) * 2005-06-30 2007-05-16 上海交通大学 基于微机电系统信息安全强链的电脑锁
US7702830B2 (en) * 2005-10-12 2010-04-20 Storage Appliance Corporation Methods for selectively copying data files to networked storage and devices for initiating the same
US7813913B2 (en) * 2005-10-12 2010-10-12 Storage Appliance Corporation Emulation component for data backup applications
US7822595B2 (en) 2005-10-12 2010-10-26 Storage Appliance Corporation Systems and methods for selectively copying embedded data files
US20070162271A1 (en) * 2005-10-12 2007-07-12 Storage Appliance Corporation Systems and methods for selecting and printing data files from a backup system
US8195444B2 (en) * 2005-10-12 2012-06-05 Storage Appliance Corporation Systems and methods for automated diagnosis and repair of storage devices
US7844445B2 (en) * 2005-10-12 2010-11-30 Storage Appliance Corporation Automatic connection to an online service provider from a backup system
US7899662B2 (en) * 2005-10-12 2011-03-01 Storage Appliance Corporation Data backup system including a data protection component
US7818160B2 (en) * 2005-10-12 2010-10-19 Storage Appliance Corporation Data backup devices and methods for backing up data
US8069271B2 (en) * 2005-10-12 2011-11-29 Storage Appliance Corporation Systems and methods for converting a media player into a backup device
US20070088770A1 (en) * 2005-10-14 2007-04-19 Ming-Tsung Chiang Structure for re-arranging file allocation index by memory block
US8078788B2 (en) 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7609561B2 (en) * 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US7912994B2 (en) * 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US7594043B2 (en) * 2006-01-27 2009-09-22 Apple Inc. Reducing dismount time for mass storage class devices
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
TW200731077A (en) * 2006-02-14 2007-08-16 Harmony Microelectronic Inc USB storage system and control method thereof
JP4725397B2 (ja) * 2006-04-05 2011-07-13 セイコーエプソン株式会社 Usb複合デバイス,usb通信システム,及びusb通信方法
US7849302B2 (en) 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
JP5076351B2 (ja) * 2006-04-18 2012-11-21 富士通株式会社 電子機器、そのデータ転送制御方法、そのデータ転送制御プログラム及びデータ転送システム
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7568135B2 (en) 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
BRPI0712109A8 (pt) * 2006-05-29 2016-03-29 Papagrigoriou Paschalis Método para a comunicação com um cartão de memória multifuncional
US20080022034A1 (en) * 2006-07-20 2008-01-24 Ddtic Corporation, Ltd. Segmentation for a flash memory of a flash disc
US8001314B2 (en) 2006-09-12 2011-08-16 Apple Inc. Storing a driver for controlling a memory
US8839005B2 (en) 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
US20080126446A1 (en) * 2006-11-27 2008-05-29 Storage Appliance Corporation Systems and methods for backing up user settings
US8171502B2 (en) * 2006-11-29 2012-05-01 Sony Ericsson Mobile Communications Ab Methods, devices and computer program products for automatically installing device drivers from a peripheral device onto a host computer
US8799521B2 (en) * 2006-11-29 2014-08-05 Sony Corporation System and method for receiving control commands at a peripheral device
GB0624582D0 (en) * 2006-12-08 2007-01-17 Visible Computing Ltd USB autorun devices
US20080189554A1 (en) * 2007-02-05 2008-08-07 Asad Ali Method and system for securing communication between a host computer and a secure portable device
US20080226082A1 (en) * 2007-03-12 2008-09-18 Storage Appliance Corporation Systems and methods for secure data backup
US7613051B2 (en) * 2007-03-14 2009-11-03 Apple Inc. Interleaving charge pumps for programmable memories
US7814304B2 (en) * 2007-03-14 2010-10-12 Apple Inc. Switching drivers between processors
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US20080270816A1 (en) * 2007-04-25 2008-10-30 Phison Electronics Corp. Portable data storage apparatus and synchronization method for the same
US7870327B1 (en) 2007-04-25 2011-01-11 Apple Inc. Controlling memory operations using a driver and flash memory type tables
US7869277B1 (en) 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US7996599B2 (en) 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
US20090031298A1 (en) * 2007-06-11 2009-01-29 Jeffrey Brunet System and method for automated installation and/or launch of software
US20090030955A1 (en) * 2007-06-11 2009-01-29 Storage Appliance Corporation Automated data backup with graceful shutdown for vista-based system
TW200903319A (en) * 2007-07-12 2009-01-16 Wei-Chiang Hsu Auxiliary data access device and data access method
US8341083B1 (en) 2007-09-12 2012-12-25 Devicefidelity, Inc. Wirelessly executing financial transactions
US9032154B2 (en) 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
TWI363966B (en) * 2008-01-23 2012-05-11 Phison Electronics Corp Method, system and controller for transmitting and dispatching data stream
US8001304B2 (en) * 2008-02-15 2011-08-16 Sandisk Technologies Inc. Portable memory device with multiple I/O interfaces wherein each I/O interface has respective protocol and device parameters are requested from one I/O interface using only respective protocol
US20100281194A1 (en) * 2008-09-02 2010-11-04 Robb Fujioka Modular application computing apparatus, system and method
US10460085B2 (en) 2008-03-13 2019-10-29 Mattel, Inc. Tablet computer
US8695087B2 (en) * 2008-04-04 2014-04-08 Sandisk Il Ltd. Access control for a memory device
US20090289118A1 (en) * 2008-05-20 2009-11-26 Chi-Tung Chang Card reader integrated with touch button control and control chip module thereof
TWI381288B (zh) * 2008-06-03 2013-01-01 Generalplus Technology Inc 自動執行方法、人機界面裝置以及使用其之電子產品
TWI472927B (zh) * 2010-08-12 2015-02-11 Phison Electronics Corp 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置
US8812756B2 (en) * 2008-06-13 2014-08-19 Phison Electronics Corp. Method of dispatching and transmitting data streams, memory controller and storage apparatus
TWI350453B (en) * 2008-06-13 2011-10-11 Phison Electronics Corp Method, system and controller thereof for transmitting and dispatching data stream
US9047987B2 (en) * 2008-07-22 2015-06-02 International Microsystems, Inc. Multiple access test architecture for memory storage devices
TW201007448A (en) * 2008-08-08 2010-02-16 Genesys Logic Inc Processing unit, portable electrica device and auto-run method thereof
US8812769B2 (en) 2008-10-30 2014-08-19 Sandisk Il Ltd. Data storage devices
US20100199290A1 (en) * 2009-02-02 2010-08-05 Richard Thomas Kavanaugh System and method for multifunction device enumeration
US8209469B2 (en) * 2009-03-10 2012-06-26 Microsoft Corporation Offline device-side logical unit number controller
US20100268856A1 (en) * 2009-04-20 2010-10-21 Smith Eric R Formatting memory in a peripheral device
JP4883728B2 (ja) * 2009-06-26 2012-02-22 株式会社バッファロー ストレージ装置、ストレージ装置の制御方法、およびコンピュータプログラム
US8413137B2 (en) 2010-02-04 2013-04-02 Storage Appliance Corporation Automated network backup peripheral device and method
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
JP5533760B2 (ja) 2011-03-30 2014-06-25 ブラザー工業株式会社 画像読取装置
KR102195788B1 (ko) 2011-08-10 2020-12-28 기타 스리바스타바 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법
WO2016031456A1 (ja) * 2014-08-28 2016-03-03 ソニー株式会社 リーダライタ装置、情報処理装置、およびデータ転送制御方法、並びにプログラム
JP6779999B2 (ja) * 2016-01-27 2020-11-04 シグニファイ ホールディング ビー ヴィSignify Holding B.V. 周辺デバイス、前記周辺デバイスを含むシステム及び方法
US20170351592A1 (en) * 2016-06-03 2017-12-07 Tzu Ping CHU Universal serial bus device and a method thereof
US10802993B2 (en) * 2018-03-23 2020-10-13 Seagate Technology Llc Driverless device configuration
US10338840B1 (en) * 2018-03-29 2019-07-02 Apricorn Portable storage device that is self-convertible from being a removable disk to a fixed disk and from being a fixed disk to a removable disk
US10608819B1 (en) 2019-09-24 2020-03-31 Apricorn Portable storage device with internal secure controller that performs self-verification and self-generates encryption key(s) without using host or memory controller and that securely sends encryption key(s) via side channel
US10656854B1 (en) 2019-10-22 2020-05-19 Apricorn Method and portable storage device with internal controller that can self-verify the device and self-convert the device from current mode to renewed mode without communicating with host
CN112905477B (zh) * 2021-03-15 2022-12-13 苏州智行众维智能科技有限公司 自动驾驶仿真测试数据发布系统、方法、装置及设备

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5450489A (en) * 1993-10-29 1995-09-12 Time Warner Entertainment Co., L.P. System and method for authenticating software carriers
EP0715241B1 (en) * 1994-10-27 2004-01-14 Mitsubishi Corporation Apparatus for data copyright management system
TW250616B (en) 1994-11-07 1995-07-01 Discovery Communicat Inc Electronic book selection and delivery system
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US20050149450A1 (en) * 1994-11-23 2005-07-07 Contentguard Holdings, Inc. System, method, and device for controlling distribution and use of digital works based on a usage rights grammar
CN100452071C (zh) * 1995-02-13 2009-01-14 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5530235A (en) * 1995-02-16 1996-06-25 Xerox Corporation Interactive contents revealing storage device
US5887269A (en) * 1995-04-07 1999-03-23 Delco Elecronics Corporation Data product authorization control for GPS navigation system
JP2000503154A (ja) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US6055314A (en) * 1996-03-22 2000-04-25 Microsoft Corporation System and method for secure purchase and delivery of video content programs
US5956034A (en) * 1996-08-13 1999-09-21 Softbook Press, Inc. Method and apparatus for viewing electronic reading materials
US5847698A (en) 1996-09-17 1998-12-08 Dataventures, Inc. Electronic book device
US5897663A (en) * 1996-12-24 1999-04-27 Compaq Computer Corporation Host I2 C controller for selectively executing current address reads to I2 C EEPROMs
EP0968585A1 (en) 1997-03-14 2000-01-05 Cryptoworks Inc. Digital product rights management technique
US6073226A (en) * 1997-03-19 2000-06-06 Microsoft Corporation System and method for minimizing page tables in virtual memory systems
US6611358B1 (en) * 1997-06-17 2003-08-26 Lucent Technologies Inc. Document transcoding system and method for mobile stations and wireless infrastructure employing the same
US6009525A (en) 1997-08-29 1999-12-28 Preview Systems, Inc. Multi-tier electronic software distribution
US6490408B1 (en) * 1997-10-28 2002-12-03 Lg Electronics Inc. Apparatus and method for determining ID information recorded on an information-stored medium
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
WO1999045460A2 (en) * 1998-03-02 1999-09-10 Lexar Media, Inc. Flash memory card with enhanced operating mode detection and user-friendly interfacing system
US6738905B1 (en) * 1998-04-15 2004-05-18 Digital Video Express, L.P. Conditional access via secure logging with simplified key management
DE19820479A1 (de) * 1998-05-07 1999-12-23 Ems Electronic Management Syst Funktionsmodul
US6438235B2 (en) * 1998-08-05 2002-08-20 Hewlett-Packard Company Media content protection utilizing public key cryptography
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
CN1262485A (zh) * 1998-11-10 2000-08-09 阿拉丁知识系统有限公司 由可灵活连接计算机系统群体使用的用户-计算机交互方法
US6363437B1 (en) * 1999-01-07 2002-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Plug and play I2C slave
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
US6529949B1 (en) * 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
GB9916212D0 (en) * 1999-07-09 1999-09-15 Simmons Douglas M A system and method for distributing electronic publications
IL137504A0 (en) * 1999-07-27 2001-07-24 Inline Connection Corp Media adapter
US7299316B2 (en) * 2004-02-26 2007-11-20 Super Talent Electronics, Inc. Memory flash card reader employing an indexing scheme
US6697944B1 (en) * 1999-10-01 2004-02-24 Microsoft Corporation Digital content distribution, transmission and protection system and method, and portable device for use therewith
AU1053901A (en) * 1999-11-01 2001-05-14 Seiko Epson Corporation Data output controller and method of providing data output service
US6886036B1 (en) * 1999-11-02 2005-04-26 Nokia Corporation System and method for enhanced data access efficiency using an electronic book over data networks
EP1102172B1 (en) * 1999-11-22 2007-03-14 A-DATA Technology Co., Ltd. Dual interface memory card and adapter module for the same
US6990464B1 (en) * 2000-01-11 2006-01-24 Ncr Corporation Apparatus, system and method for electronic book distribution
US6813725B1 (en) * 2000-01-26 2004-11-02 Hewlett-Packard Development Company, L.P. Method for restoring an operating system utilizing a storage device on a USB bus
US7023572B2 (en) * 2000-02-02 2006-04-04 Raja Singh Tuli Portable high speed internet access device
US7068381B1 (en) * 2000-02-02 2006-06-27 Raja Tuli Portable high speed internet access device
US6484219B1 (en) * 2000-02-04 2002-11-19 Microsoft Corporation Host-specified USB device requests
US6974076B1 (en) 2000-02-14 2005-12-13 Sony Corporation Portable music player with pay per play usage and method for purchase of credits for usage
US6813669B1 (en) * 2000-02-24 2004-11-02 International Business Machines Corporation Agent provided by USB device for executing USB device dependent program in USB host
JP4617533B2 (ja) * 2000-03-14 2011-01-26 ソニー株式会社 情報提供装置および方法、情報処理装置および方法、並びにプログラム格納媒体
US6502146B1 (en) * 2000-03-29 2002-12-31 Intel Corporation Apparatus and method for dedicated interconnection over a shared external bus
GB0012791D0 (en) 2000-05-25 2000-07-19 Breakertech Inc Mobile node-lock
US6738614B1 (en) * 2000-06-19 2004-05-18 1477.Com Wireless, Inc. Method and system for communicating data to a wireless device
US7262873B1 (en) * 2000-07-05 2007-08-28 Lexmark International, Inc. Photoprinter access to remote data
US6832281B2 (en) 2000-07-06 2004-12-14 Onspec Electronic Inc. Flashtoaster for reading several types of flash memory cards with or without a PC
US6438638B1 (en) * 2000-07-06 2002-08-20 Onspec Electronic, Inc. Flashtoaster for reading several types of flash-memory cards with or without a PC
US7093161B1 (en) * 2002-08-16 2006-08-15 Onspec Electronic, Inc. Software recovery method for flash media with defective formatting
JP2002041247A (ja) * 2000-07-28 2002-02-08 Nec Corp コンピュータシステムおよびusbメモリ装置
US6782414B1 (en) * 2000-08-03 2004-08-24 International Business Machines Corporation Method and system for determination of delivery status of email sent to multiple recipients through multiple protocols
JP2002108484A (ja) * 2000-09-27 2002-04-10 I-O Data Device Inc 外部記憶装置およびコントローラ
US7039727B2 (en) 2000-10-17 2006-05-02 Microsoft Corporation System and method for controlling mass storage class digital imaging devices
US20020162009A1 (en) * 2000-10-27 2002-10-31 Shimon Shmueli Privacy assurance for portable computing
EP1209574A3 (en) 2000-11-24 2002-07-03 Q-tek International, LLC USB computer memory drive
US7350228B2 (en) * 2001-01-23 2008-03-25 Portauthority Technologies Inc. Method for securing digital content
JP2002359810A (ja) * 2001-03-06 2002-12-13 Konica Corp 電子カメラ
US7213004B2 (en) * 2001-04-12 2007-05-01 Koninklijke Philips Electronics N.V. Apparatus and methods for attacking a screening algorithm based on partitioning of content
US7222104B2 (en) 2001-05-31 2007-05-22 Contentguard Holdings, Inc. Method and apparatus for transferring usage rights and digital work having transferrable usage rights
US6973445B2 (en) 2001-05-31 2005-12-06 Contentguard Holdings, Inc. Demarcated digital content and method for creating and processing demarcated digital works
US6876984B2 (en) * 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US20020185533A1 (en) 2001-06-06 2002-12-12 Ron-Yen Shieh Externally connection type USB2.0 interface flash card reader
WO2002101494A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Protected content distribution system
CN1122281C (zh) * 2001-06-30 2003-09-24 深圳市朗科科技有限公司 一种多功能半导体存储装置
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7249107B2 (en) * 2001-07-20 2007-07-24 Microsoft Corporation Redistribution of rights-managed content
US6941405B2 (en) * 2001-08-21 2005-09-06 02Micro International Limited System and method capable of offloading converter/controller-specific tasks to a system microprocessor
US6779059B2 (en) * 2001-08-21 2004-08-17 O2Micro International Limited Reconfigurable flash media reader system
US20040205453A1 (en) * 2001-08-29 2004-10-14 Sterling Mortensen Document distribution to mobile computing device
US6922725B2 (en) * 2001-09-07 2005-07-26 Xerox Corporation Method and apparatus for processing document service requests originating from a mobile computing device
US7318112B2 (en) * 2001-10-11 2008-01-08 Texas Instruments Incorporated Universal interface simulating multiple interface protocols
JP3641230B2 (ja) 2001-10-22 2005-04-20 株式会社東芝 メモリカードを制御するための装置および方法
US7320126B2 (en) * 2001-11-06 2008-01-15 Sandisk Corporation Implementation of in system programming to update firmware on memory cards
AUPR966001A0 (en) * 2001-12-20 2002-01-24 Canon Information Systems Research Australia Pty Ltd A microprocessor card defining a custom user interface
US7412553B2 (en) * 2002-01-10 2008-08-12 O2Micro International Limited Enhanced protocol conversion system capable of providing offloaded protocol instruction processing
JP4119152B2 (ja) * 2002-04-17 2008-07-16 株式会社ルネサステクノロジ 半導体集積回路装置
JP3513147B2 (ja) * 2002-05-29 2004-03-31 株式会社ハギワラシスコム Usbストレージデバイス及びその制御装置
US7092942B2 (en) * 2002-05-31 2006-08-15 Bea Systems, Inc. Managing secure resources in web resources that are accessed by multiple portals
TW587790U (en) 2002-06-18 2004-05-11 King Byte Information Corp Device for adapting memory card interface to USB interface
US7159065B1 (en) * 2002-06-20 2007-01-02 Cypress Semiconductor Corporation Method for issuing vendor specific requests for accessing ASIC configuration and descriptor memory while still using a mass storage class driver
US7353402B2 (en) 2002-06-28 2008-04-01 Microsoft Corporation Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system
TWI287751B (en) * 2002-08-09 2007-10-01 Carry Technology Co Ltd Multi-functional small-form-factor memory card interface for use in a USB interface
US20040035939A1 (en) * 2002-08-21 2004-02-26 Jin-Min Lin Multifunction memory card reading/writing device
US7979700B2 (en) * 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
US20040039932A1 (en) * 2002-08-23 2004-02-26 Gidon Elazar Apparatus, system and method for securing digital documents in a digital appliance
US20040064612A1 (en) 2002-09-26 2004-04-01 Sandisk Corporation Method and system for using a memory card protocol inside a bus protocol
JP3767818B2 (ja) * 2002-10-28 2006-04-19 株式会社サスライト 着脱式デバイス及びプログラムの起動方法
ATE544111T1 (de) * 2002-11-01 2012-02-15 Saslite Corp Ablösbare usb einrichtung mit getrennten einheiten
US20040093509A1 (en) * 2002-11-12 2004-05-13 Gidon Elazar Method and apparatus for connecting a storage device to a television
US20040137664A1 (en) * 2003-01-09 2004-07-15 Gidon Elazar Advanced packaging shell for pocketable consumer electronic devices
EP1609048A4 (en) 2003-03-27 2009-01-14 Milsys Ltd DATA STORAGE DEVICE HAVING COMPLETE ACCESS FOR ALL USERS
US20040210433A1 (en) * 2003-04-21 2004-10-21 Gidon Elazar System, method and apparatus for emulating a web server
US7143224B2 (en) 2003-05-09 2006-11-28 Stmicroelectronics, Inc. Smart card for performing advance operations to enhance performance and related system, integrated circuit, and methods
US7181649B2 (en) * 2003-05-09 2007-02-20 Stmicroelectronics, Inc. Universal serial bus (USB) smart card having enhanced testing features and related system, integrated circuit, and methods
KR20060060668A (ko) * 2003-07-28 2006-06-05 샌디스크 씨큐어 컨텐트 솔루션즈, 인코포레이티드 저장소 디바이스를 제어하는 시스템, 장치 및 방법
KR101193977B1 (ko) * 2003-07-28 2012-10-24 샌디스크 씨큐어 컨텐트 솔루션즈, 인코포레이티드 전기 커넥터
US7350143B2 (en) * 2003-10-03 2008-03-25 Sandisk Corporation Method for page translation
US7334077B2 (en) * 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication
US20050097263A1 (en) * 2003-10-31 2005-05-05 Henry Wurzburg Flash-memory card-reader to IDE bridge
US7213766B2 (en) * 2003-11-17 2007-05-08 Dpd Patent Trust Ltd Multi-interface compact personal token apparatus and methods of use
US6993618B2 (en) * 2004-01-15 2006-01-31 Super Talent Electronics, Inc. Dual-mode flash storage exchanger that transfers flash-card data to a removable USB flash key-drive with or without a PC host
JP4740157B2 (ja) * 2004-02-03 2011-08-03 サンディスク セキュア コンテンツ ソリューションズ インコーポレイテッド デジタルデータコンテンツの保護
US7152801B2 (en) * 2004-04-16 2006-12-26 Sandisk Corporation Memory cards having two standard sets of contacts
US7487265B2 (en) * 2004-04-16 2009-02-03 Sandisk Corporation Memory card with two standard sets of contacts and a hinged contact covering mechanism
US20050289072A1 (en) 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
US7225289B2 (en) * 2005-03-14 2007-05-29 Phison Electronics Corporation Virtual IDE storage with PCI express interface
US7222212B2 (en) * 2005-03-14 2007-05-22 Phison Electronics Corporation Virtual USB card reader with PCI express interface
US20060218324A1 (en) * 2005-03-25 2006-09-28 Matsushita Electrical Industrial Co., Ltd Systems and methods for flexible data transfers in SDIO and/or MMC
US20060285559A1 (en) 2005-06-16 2006-12-21 Chih-Hung Cheng Method for controlling host from device coupled thereto using universal serial bus and system thereof
US20070136501A1 (en) * 2005-12-08 2007-06-14 Chang Robert C Media card command pass through methods
US8078788B2 (en) * 2005-12-08 2011-12-13 Sandisk Technologies Inc. Media card command pass through methods
US20070168668A1 (en) * 2005-12-08 2007-07-19 Chang Robert C Media card with command pass through mechanism
US7433990B2 (en) * 2006-01-24 2008-10-07 Standard Microsystems Corporation Transferring system information via universal serial bus (USB)
US8839005B2 (en) * 2006-09-13 2014-09-16 Sandisk Technologies Inc. Apparatus for transferring licensed digital content between users
US20080065552A1 (en) * 2006-09-13 2008-03-13 Gidon Elazar Marketplace for Transferring Licensed Digital Content

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009090734A1 (ja) 2008-01-16 2009-07-23 I-O Data Device, Inc. Usb可搬装置
US8527680B2 (en) 2008-01-16 2013-09-03 I-O Data Device, Inc. USB portable device having switching function

Also Published As

Publication number Publication date
WO2004086363A3 (en) 2005-11-03
JP2007528036A (ja) 2007-10-04
JP2006202339A (ja) 2006-08-03
US20070233910A1 (en) 2007-10-04
US7793014B2 (en) 2010-09-07
WO2004086363A2 (en) 2004-10-07
US7237046B2 (en) 2007-06-26
EP1609048A4 (en) 2009-01-14
EP1609048A2 (en) 2005-12-28
US20040193744A1 (en) 2004-09-30
JP4554598B2 (ja) 2010-09-29

Similar Documents

Publication Publication Date Title
JP4554598B2 (ja) すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス
US7415571B1 (en) Disk drive and method for using a mailbox file associated with a disk storage medium for performing a function characterized by contents of the mailbox file
KR100450080B1 (ko) 유에스비기반의 이동형 저장장치 및 그 제어방법
US7543117B1 (en) Method for installing a mailbox file associated with a disk storage medium
US9026683B1 (en) Command portal for executing non-standard storage subsystem commands
US8745277B2 (en) Command portal for securely communicating and executing non-standard storage subsystem commands
US7725628B1 (en) Direct secondary device interface by a host
US7610409B2 (en) Method for transporting data through universal serial bus and universal serial bus device
US20070136501A1 (en) Media card command pass through methods
US20070168668A1 (en) Media card with command pass through mechanism
JP2007200351A (ja) ユニバーサル・シリアル・バスに基づくpcフラッシュディスクのためのアーキテクチャ
US8065440B2 (en) Enabling and disabling device images on a platform without disrupting BIOS or OS
KR100864814B1 (ko) 광 저장 장치 또는/및 이동식 디스크로 구현된 컴퓨터 확장장치 및 그 구현 방법
JP2005266934A (ja) Usbストレージデバイス及びその制御装置
US7779033B2 (en) Method for controlling a data processing device
US20070226451A1 (en) Method and apparatus for full volume mass storage device virtualization
KR20070081996A (ko) 유니버셜 시리얼 버스 저장 시스템 및 그 제어 방법
JP4807667B2 (ja) 通信システム及びそれに使用する周辺装置
US7467217B2 (en) Reflective driver
JP2008033451A (ja) 着脱式記憶メディア
JP3834223B2 (ja) ディスクアクセス制御装置、ディスクアクセス制御方法、情報処理装置、プログラム
JP2008052514A (ja) 通信システム及びそれに使用する周辺装置
Gilbert The Linux 2.4 SCSI subsystem HOWTO
US20080140798A1 (en) Storage adapter and method thereof
CN113553632A (zh) 一种数据安全传输接口设备、系统及方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060724

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070115