JP2006286008A - すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス - Google Patents
すべてのユーザによる完全なアクセスが可能なデータ記憶デバイス Download PDFInfo
- 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
Links
- 238000013500 data storage Methods 0.000 title 1
- 238000004891 communication Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 abstract description 45
- 238000000034 method Methods 0.000 abstract description 20
- 230000003213 activating effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】既存のオペレーティングシステムを使用した、キーチェーン記憶デバイスのドライバなしの動作を可能にし、その上、自動実行およびプライベートコマンドインタフェースも有効にするための方法を提供する。
【解決手段】ホストコンピュータの周辺デバイスが、マイクロコントローラおよび2つの仮想デバイスを有する。第1の仮想デバイスは、マイクロコントローラに、ホストコンピュータの任意のユーザからの第1のコマンドセットのコマンドを渡し、さらに、ホストコンピュータの特権ユーザのみからの第2のコマンドセットのコマンドも渡す。第2の仮想デバイスは、マイクロコントローラに、ホストコンピュータの任意のユーザからの第2のセットのコマンドを渡す。2つの仮想デバイスは独立した物理デバイスとして実装され、第2のデバイスは、ユーザが非特権である場合のみ、ホストコンピュータへのインタフェースに接続される。
【選択図】図4A
【解決手段】ホストコンピュータの周辺デバイスが、マイクロコントローラおよび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つのそのようなデバイスの物理実装を示す。
本発明を、限定された数の実施形態に関して説明したが、本発明の多くの変形形態、修正形態、およびその他の応用例が作成されてもよいことが理解されるであろう。
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デバイス
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)
- 所定のオペレーションシステムによって制御されると共に少なくともディスクドライブドライバ、USBマスストレージクラスドライバ及びUSBホストコントローラを具備する外部装置への着脱が可能なUSBストレージデバイスであって、
フラッシュメモリの記憶領域を、第1の領域と第2の領域とに分けて定義してなる記憶手段と、
前記外部装置とUSBプロトコルに基づいた通信を行う通信手段と、
前記通信手段を介して、前記記憶手段に対して情報の読み出し、書き込み及び削除を実行する制御手段と、
を備え、
前記制御手段は、
前記第1の領域を情報の読み出し、書き込み及び削除を実行可能なディスクデバイスとして、前記第2の領域を情報の読み出しのみを実行可能なCD−ROMデバイスとして認識させるための情報を記憶し、
前記ディスクドライブドライバからの指令に従って、前記認識させるための情報を前記USBマスストレージクラスドライバに供給して、当該USBマスストレージクラスドライバに、本USBストレージデバイスの前記各領域を、前記ディスクデバイス及び前記CD−ROMデバイスという異なる2つの種類のデバイスとして認識させるとともに、
前記外部装置から受け取った指令と前記認識させるための情報とに基づいて、前記第1の領域に対しては情報の読み出し、書き込み又は削除を実行し、前記第2の領域に対しては情報の読み出しのみを実行することを特徴とするUSBストレージデバイス。 - USBストレージデバイスに搭載される制御装置であって、
前記USBストレージデバイスに設けられたフラッシュメモリからなる記憶手段の第1の領域を情報の読み出し、書き込み及び削除を実行可能なディスクデバイスとして、前記記憶手段の第2の領域を情報の読み出しのみを実行可能なCD−ROMデバイスとして、前記USBストレージデバイスが装着されて用いられる外部装置のUSBマスストレージクラスドライバに認識させるための情報を記憶し、
前記外部装置のディスクドライブドライバによるコマンドの発行に応答して、前記外部装置のUSBマスストレージクラスドライバへ前記認識させるための情報を供給して、前記USBマスストレージクラスドライバに、当該制御装置が搭載されたUSBストレージデバイスの前記各領域を、前記ディスクデバイス及び前記CD−ROMデバイスという異なる2つの種類のデバイスと認識させるとともに、
前記外部装置から受け取った指令と前記認識させるための情報とに基づいて、前記第1の領域に対しては情報の読み出し、書き込み又は削除を実行し、前記第2の領域に対しては情報の読み出しのみを実行することを特徴とする制御装置。
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)
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)
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 |
US7908401B2 (en) | 2002-12-12 | 2011-03-15 | Flexiworld Technology, Inc. | Method and device for wireless communication between computing devices |
EP1609048A4 (en) | 2003-03-27 | 2009-01-14 | Milsys Ltd | DATA STORAGE DEVICE HAVING COMPLETE ACCESS FOR ALL USERS |
WO2004093149A2 (en) | 2003-04-11 | 2004-10-28 | Flexiworld Technologies, Inc. | Autorun for integrated circuit memory component |
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 |
EP1702250B1 (de) * | 2003-12-30 | 2009-07-08 | 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 |
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 |
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 |
AU2005266943C1 (en) | 2004-07-23 | 2011-01-06 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
US7978714B2 (en) | 2004-07-23 | 2011-07-12 | Citrix Systems, Inc. | Methods and systems for securing access to private networks using encryption and authentication technology built in to peripheral devices |
WO2006020823A1 (en) | 2004-08-13 | 2006-02-23 | Citrix Systems, Inc. | A 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 |
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 |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
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 |
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 |
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 |
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 |
CN102123178B (zh) | 2005-01-24 | 2014-04-09 | 茨特里克斯系统公司 | 在网络中对动态产生的对象执行缓存的系统和方法 |
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 |
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 | 上海交通大学 | 基于微机电系统信息安全强链的电脑锁 |
US7899662B2 (en) * | 2005-10-12 | 2011-03-01 | Storage Appliance Corporation | Data backup system including a data protection component |
US7822595B2 (en) | 2005-10-12 | 2010-10-26 | Storage Appliance Corporation | Systems and methods for selectively copying embedded data files |
US7844445B2 (en) * | 2005-10-12 | 2010-11-30 | Storage Appliance Corporation | Automatic connection to an online service provider 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 |
US20070162271A1 (en) * | 2005-10-12 | 2007-07-12 | Storage Appliance Corporation | Systems and methods for selecting and printing data files from a backup system |
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 |
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 |
US7793059B2 (en) * | 2006-01-18 | 2010-09-07 | Apple Inc. | Interleaving policies for flash memory |
US7609561B2 (en) * | 2006-01-18 | 2009-10-27 | Apple Inc. | Disabling faulty flash memory dies |
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 | 富士通株式会社 | 電子機器、そのデータ転送制御方法、そのデータ転送制御プログラム及びデータ転送システム |
US7613043B2 (en) * | 2006-05-15 | 2009-11-03 | Apple Inc. | Shifting reference values to account for voltage sag |
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 |
US7511646B2 (en) * | 2006-05-15 | 2009-03-31 | Apple Inc. | Use of 8-bit or higher A/D for NAND cell value |
US7852690B2 (en) * | 2006-05-15 | 2010-12-14 | Apple Inc. | Multi-chip package for a flash memory |
US7639531B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Dynamic cell bit resolution |
US7568135B2 (en) | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
US7911834B2 (en) * | 2006-05-15 | 2011-03-22 | Apple Inc. | Analog interface for a flash memory die |
US8000134B2 (en) | 2006-05-15 | 2011-08-16 | Apple Inc. | Off-die charge pump that supplies multiple flash devices |
US7639542B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Maintenance operations for multi-level data storage cells |
EP2030105A1 (en) * | 2006-05-29 | 2009-03-04 | Paschalis Papagrigoriou | Method for communication with a multi-function memory card |
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 |
US8799521B2 (en) * | 2006-11-29 | 2014-08-05 | Sony Corporation | System and method for receiving control commands at a peripheral device |
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 |
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 |
US7814304B2 (en) * | 2007-03-14 | 2010-10-12 | Apple Inc. | Switching drivers between processors |
US7613051B2 (en) | 2007-03-14 | 2009-11-03 | Apple Inc. | Interleaving charge pumps for programmable memories |
US7996599B2 (en) * | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US20080288712A1 (en) | 2007-04-25 | 2008-11-20 | Cornwell Michael J | Accessing metadata with an external host |
US7913032B1 (en) | 2007-04-25 | 2011-03-22 | Apple Inc. | Initiating memory wear leveling |
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 |
US20080270816A1 (en) * | 2007-04-25 | 2008-10-30 | Phison Electronics Corp. | Portable data storage apparatus and synchronization method for the same |
US20090030955A1 (en) * | 2007-06-11 | 2009-01-29 | Storage Appliance Corporation | Automated data backup with graceful shutdown for vista-based system |
US20090031298A1 (en) * | 2007-06-11 | 2009-01-29 | Jeffrey Brunet | System and method for automated installation and/or launch of software |
TW200903319A (en) * | 2007-07-12 | 2009-01-16 | Wei-Chiang Hsu | Auxiliary data access device and data access method |
US8109444B2 (en) * | 2007-09-12 | 2012-02-07 | Devicefidelity, Inc. | Selectively switching antennas of transaction cards |
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 |
US10460085B2 (en) | 2008-03-13 | 2019-10-29 | Mattel, Inc. | Tablet computer |
US20100281194A1 (en) * | 2008-09-02 | 2010-11-04 | Robb Fujioka | Modular application computing apparatus, system and method |
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 | 資料串分派與傳送方法、記憶體控制器與記憶體儲存裝置 |
TWI350453B (en) * | 2008-06-13 | 2011-10-11 | Phison Electronics Corp | Method, system and controller thereof for transmitting and dispatching data stream |
US8812756B2 (en) * | 2008-06-13 | 2014-08-19 | Phison Electronics Corp. | Method of dispatching and transmitting data streams, memory controller and storage apparatus |
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 | ブラザー工業株式会社 | 画像読取装置 |
KR102039113B1 (ko) | 2011-08-10 | 2019-10-31 | 기타 스리바스타바 | 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법 |
US20170228333A1 (en) * | 2014-08-28 | 2017-08-10 | Sony Corporation | Reader/writer device, information processing device, and data transfer control method, and program |
CN108702830B (zh) * | 2016-01-27 | 2021-07-13 | 昕诺飞控股有限公司 | 外围设备、包括外围设备的系统和方法 |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0175487A3 (en) * | 1984-08-23 | 1989-03-08 | Btg International Limited | 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 |
DE69532434T2 (de) * | 1994-10-27 | 2004-11-11 | Mitsubishi Corp. | Gerät für Dateiurheberrechte-Verwaltungssystem |
TW250616B (en) | 1994-11-07 | 1995-07-01 | Discovery Communicat Inc | Electronic book selection and delivery system |
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 |
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 |
CN1312549C (zh) * | 1995-02-13 | 2007-04-25 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
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 |
AU1690597A (en) * | 1996-01-11 | 1997-08-01 | Mitre Corporation, The | System for controlling access and distribution of digital property |
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 |
IL131876A0 (en) | 1997-03-14 | 2001-03-19 | 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 |
DE60033917T2 (de) * | 1999-11-01 | 2007-07-05 | Seiko Epson Corp. | Datenausgabesteuergerät und Verfahren um Datenausgabedienst zu ermöglichen |
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 |
ATE357020T1 (de) * | 1999-11-22 | 2007-04-15 | A Data Technology Co Ltd | Zwei-schnittstellenspeicherkarte und anpassungsmodul dafür |
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 |
US7093161B1 (en) * | 2002-08-16 | 2006-08-15 | Onspec Electronic, Inc. | Software recovery method for flash media with defective formatting |
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 |
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 |
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 |
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 |
US6973445B2 (en) | 2001-05-31 | 2005-12-06 | Contentguard Holdings, Inc. | Demarcated digital content and method for creating and processing demarcated digital works |
US20020185533A1 (en) | 2001-06-06 | 2002-12-12 | Ron-Yen Shieh | Externally connection type USB2.0 interface flash card reader |
EP1323018A4 (en) * | 2001-06-07 | 2004-07-07 | Contentguard Holdings Inc | PROTECTED CONTENT DELIVERY 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 |
US20040039932A1 (en) * | 2002-08-23 | 2004-02-26 | Gidon Elazar | Apparatus, system and method for securing digital documents in a digital appliance |
US7979700B2 (en) | 2002-08-23 | 2011-07-12 | Sandisk Corporation | 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 | 株式会社サスライト | 着脱式デバイス及びプログラムの起動方法 |
AU2003301696A1 (en) * | 2002-11-01 | 2004-05-25 | Shinya Kobayashi | Detachable device, control circuit, control circuit firmware program, information processing method and circuit design pattern in control circuit, and log-in method |
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 |
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 |
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 |
CN100474709C (zh) * | 2003-07-28 | 2009-04-01 | 桑迪士克防护内容解决公司 | 电连接器 |
KR20060060668A (ko) * | 2003-07-28 | 2006-06-05 | 샌디스크 씨큐어 컨텐트 솔루션즈, 인코포레이티드 | 저장소 디바이스를 제어하는 시스템, 장치 및 방법 |
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 |
US20070168668A1 (en) * | 2005-12-08 | 2007-07-19 | Chang Robert C | Media card with command pass through mechanism |
US8078788B2 (en) * | 2005-12-08 | 2011-12-13 | Sandisk Technologies Inc. | Media card command pass through methods |
US20070136501A1 (en) * | 2005-12-08 | 2007-06-14 | Chang Robert C | Media card command pass through methods |
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 |
-
2004
- 2004-03-25 EP EP04723302A patent/EP1609048A4/en not_active Ceased
- 2004-03-25 JP JP2006507589A patent/JP4554598B2/ja not_active Expired - Fee Related
- 2004-03-25 WO PCT/IL2004/000272 patent/WO2004086363A2/en active Application Filing
- 2004-03-29 US US10/810,566 patent/US7237046B2/en not_active Expired - Fee Related
-
2006
- 2006-04-12 JP JP2006109750A patent/JP2006202339A/ja active Pending
- 2006-04-28 JP JP2006125077A patent/JP2006286008A/ja active Pending
-
2007
- 2007-05-21 US US11/751,042 patent/US7793014B2/en not_active Expired - Lifetime
Cited By (2)
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 |
---|---|
US7237046B2 (en) | 2007-06-26 |
WO2004086363A2 (en) | 2004-10-07 |
JP4554598B2 (ja) | 2010-09-29 |
US20040193744A1 (en) | 2004-09-30 |
US7793014B2 (en) | 2010-09-07 |
JP2007528036A (ja) | 2007-10-04 |
EP1609048A4 (en) | 2009-01-14 |
US20070233910A1 (en) | 2007-10-04 |
EP1609048A2 (en) | 2005-12-28 |
JP2006202339A (ja) | 2006-08-03 |
WO2004086363A3 (en) | 2005-11-03 |
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 | |
US20070136501A1 (en) | Media card command pass through methods | |
JP2006031733A (ja) | ユニバーサル・シリアル・バスに基づくpcフラッシュディスクのためのアーキテクチャ | |
JP2006344206A (ja) | ユニバーサルシリアルバスデータ伝送方法及びその方法を実施するデバイス | |
US8065440B2 (en) | Enabling and disabling device images on a platform without disrupting BIOS or OS | |
KR20060119989A (ko) | 디지털 미디어 콘텐츠에 보안 접속하기 위한 장치, 가상멀티 인터페이스 드라이버 및 디지털 미디어 콘텐츠에 보안접속하기 위한 시스템 | |
KR100864814B1 (ko) | 광 저장 장치 또는/및 이동식 디스크로 구현된 컴퓨터 확장장치 및 그 구현 방법 | |
US7996631B1 (en) | System and method for accessing storage devices attached to a stateless client | |
US7779033B2 (en) | Method for controlling a data processing device | |
US20070198753A1 (en) | Method and protocol for transmitting extended commands to USB devices | |
KR20070081996A (ko) | 유니버셜 시리얼 버스 저장 시스템 및 그 제어 방법 | |
JP4807667B2 (ja) | 通信システム及びそれに使用する周辺装置 | |
US7467217B2 (en) | Reflective driver | |
JP2008033451A (ja) | 着脱式記憶メディア | |
JP3834223B2 (ja) | ディスクアクセス制御装置、ディスクアクセス制御方法、情報処理装置、プログラム | |
JP2008052514A (ja) | 通信システム及びそれに使用する周辺装置 | |
US20080140798A1 (en) | Storage adapter and method thereof | |
KR100857506B1 (ko) | 광 저장 장치로 구현된 컴퓨터 확장 장치 및 이를 구현하고활용하는 방법 | |
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 |