JP4965605B2 - エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム - Google Patents

エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム Download PDF

Info

Publication number
JP4965605B2
JP4965605B2 JP2009149006A JP2009149006A JP4965605B2 JP 4965605 B2 JP4965605 B2 JP 4965605B2 JP 2009149006 A JP2009149006 A JP 2009149006A JP 2009149006 A JP2009149006 A JP 2009149006A JP 4965605 B2 JP4965605 B2 JP 4965605B2
Authority
JP
Japan
Prior art keywords
peripheral device
network address
peripheral
host device
stored
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.)
Expired - Fee Related
Application number
JP2009149006A
Other languages
English (en)
Other versions
JP2009211729A (ja
Inventor
エイチ.チロヤン ジョン
エー.マン サムエル
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009211729A publication Critical patent/JP2009211729A/ja
Application granted granted Critical
Publication of JP4965605B2 publication Critical patent/JP4965605B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、一般的には、エレクトロニック周辺デバイスのファームウェアメモリにネットワークアドレスをストアしておく方法とシステムに関し、さらに具体的には、かかるエレクトロニック周辺デバイスに具体的に関係するデバイスドライバや他のソフトウェアを、ネットワークアドレスによって特定されたリモートサイトから取り出すことに関する。
多くのコンピュータおよび関連の周辺デバイス(peripheral deviceまたはperipheral)は、コンピュータ上で稼動しているオペレーティングシステムに組み込まれたプラグアンドプレイ機能(plug-and-play capability)を取り扱うように設計されている。プラグアンドプレイによると、コンピュータは新たに接続された周辺デバイスを自動的に検出し、その周辺デバイスをコンピュータシステムの一部としてインストールすることが可能になっている。プラグアンドプレイが開発される以前は、ユーザは、新しい周辺デバイスが追加されたことを、明示的にオペレーティングシステムに知らせ、どの周辺デバイスが追加されたかを特定し、例えば、割込み要求値(interrupt request value - IRQ)のように、周辺デバイスが必要とするリソースを手作業でセットする必要があった。プラグアンドプレイの下では、コンピュータオペレーティングシステムは、新たに追加された周辺デバイスの存在を、コンピュータのブートアップ時に自動的に検出し、どのデバイスであるかを特定し、そのあと、そのデバイスが必要とするリソースを自動的に割り当てている。つい最近では、コンピュータがすでにブートアップされ、動作状態になった後で、周辺デバイスがいつ追加されたか、あるいは切り離されたかを「ホット検出(hot-detect)」し、どの周辺デバイスであるかを特定し、そのデバイスをコンピュータシステムの一部としてインストールし、あるいはアンインストールできるようにする機能が、オペレーティングシステムに追加されている。例えば、多くの新しいコンピュータと周辺デバイスはユニバーサルシリアルバス(Universal Serial Bus - USB)をサポートし、USBインタフェースを装備している。これらの新しいコンピュータ上で稼動しているMicrosoft(登録商標)社のWINDOWS(登録商標)オペレーションシステムの最新バージョンでは、スキャナ、プリンタ、デジタルカメラなどのような、新たに接続または切り離されたUSB周辺デバイスを、コンピュータの稼動中にホット検出することが可能になっている。オペレーティングシステムは、どのUSBデバイスがUSBポートに接続されたかを、そのデバイスから得た情報に基づいて特定している。そのあと、該当する周辺デバイスドライバとクライアントアプリケーションソフトウェアが以前にインストールされていれば、コンピュータは、そのデバイスをコンピュータシステムの一部としてインストールしている。具体的には、オペレーティングシステムは、その特定周辺デバイスドライバがカレントデバイスレジストリ(current device registry)に登録されているかどうかを確かめるためのチェックを行い、登録されていれば、対応するデバイスドライバをメモリにロードしている。そのあと、新たに接続されたUSB周辺デバイスは即時に使用可能になる。
しかるに、新しいUSB周辺デバイスが初めてコンピュータに接続されるときは、そのUSB周辺デバイスはデバイスレジストリにはリストされていない。ある種の周辺デバイスでは、情報ファイル(つまり、*.INFファイル)とデバイスドライバはオペレーティングシステムに組み込まれているので、オペレーションシステムは、周辺デバイスに関する必要情報をデバイスレジストリに追加し、デバイスドライバをロードすることが可能になっている。しかし、多くの場合、周辺デバイス情報とデバイスドライバはオペレーティングシステムに組み込まれていない。そのような場合には、現在では、周辺デバイスのための必要情報、ドライバ、および関連するクライアントアプリケーションソフトウェアを取得し、インストールするためには、セットアッププログラムを実行する必要がある。
どのタイプのアプリケーションソフトウェアをインストールする必要が起こるかの1つの例として、USBプリンタと共に使用されるプリンタマネージャプログラム(printer manager program)がある。そのほかにも、アプリケーションソフトウェアとしては、USBデバイスのための追加的フィーチャ(feature)や機能(function)を備えたプログラム、あるいは周辺デバイスの購入者に付加的便益を提供するプログラムがある。
代表例として、必要とされるドライバとユーザアプリケーションソフトウェアは、周辺デバイスと一緒にパッケージされているCD-ROMや1つまたは2つ以上のフロッピディスクに入って提供されている。USB周辺デバイス用のドライバやユーザアプリケーションソフトウェアがオペレーティングシステムと一緒に提供されないときは、ユーザはCD-ROMまたはフロッピディスクをロードするか、さもなければ、必要なマテリアルを手作業で用意しなければならない。従って、周辺デバイスを初期インストールするためにやりとりすることがユーザに要求されるため、上級ユーザの経験が無駄になってしまうが、これは、周辺デバイスの初期インストールが真の意味で「プラグアンドプレイ」オペレーションでないからである。
新しい周辺デバイスがコンピュータに接続されるとき、オペレーティングシステムは、プラグアンドプレイ機能を備えていれば、その新周辺デバイスの存在を検出する。上述したように、そのようなオペレーティングシステムは、そのあと、その周辺デバイスが以前にインストールされていたかどうかを確かめるためのチェックを行う。周辺デバイスが以前にインストールされていなければ、オペレーティングシステムは、新しい周辺デバイスをインストールするためのプロシージャを起動する。オペレーティングシステムが必要なファイルを備えていなければ、オペレーティングシステムは、該当する情報ファイル(例えば、*.INFファイル)、ドライバソフトウェア、およびアプリケーションソフトウェアが入っているCD-ROMまたは他の媒体を、ユーザに挿入させるためのオプションを用意している。
CD-ROMおよび/またはフロッピディスクを作成し、それを周辺デバイスと一緒に配布することは、少なくとも2つの理由で、周辺デバイスベンダにとっては相当の費用負担になっている。第一の理由は、このような有形的コンポーネントを用意すると、媒体とパッケージングのコストが発生することである。第二の理由は、CD-ROMおよび/またはフロッピディスクの作成をスケジューリングすると、新規に開発された周辺デバイスの出荷が遅れたり、利用できるソフトウェア開発時間量が少なくなったりすることである。開発サイクルの後半でデバイスドライバまたは他のソフトウェアの変更が必要になったときは、周辺ハードウェアの製造が完了した後までCD-ROMの作成が待たされることがある。周辺デバイスの出荷が遅延するほかに、完成した周辺デバイスを在庫として保管しておく費用が必要以上に増加することにもなる。これとは別に、周辺ハードウェアの製造と出荷スケジュールに合わせてCD-ROMを作成するためには、プログラム開発を途中で打ち切る必要が起こるため、訂正を行ったり、プログラムフィーチャを追加したりすることができなくなる。プログラムフィーチャが除かれていると、市場におけるプロダクトの競争力と魅力が低下することになる。また、ベンダは、更新されたソフトウェアを別のCD-ROMに入れて配布するとか、あるいは別の方法で、バグを訂正したり、改善されたフィーチャと機能をソフトウェアマテリアルで提供したりすることが強要されることになる。
更新されたデバイスドライバと他のマテリアルは、インターネット(the Internet)上でダウンロードするために利用可能になっていることが多い。多くのコンピュータユーザは、高速で、フルタイムのコネクションでインターネットに結ばれているか、あるいは少なくともダイヤルアップ(dial-up)コネクションでインターネットに結ばれているので、周辺デバイスのベンダは、必ずしも、周辺デバイスと一緒にCD-ROMおよび/またはフロッピディスクを提供しなくても、必要とされるドライバやアプリケーションソフトウェアが得られるようになっている。その代わりに、ベンダは、そのようなソフトウェアをインターネット上の特定サイトから手作業でダウンロードすることを、ユーザに要求できるようになっている。しかし、インターネットに接続し、および/またはドライバや他のソフトウェアマテリアルをダウンロードすることは、手作業による、時間のかかるプロセスでもあるため、大部分のユーザは避けようとしている。さらに、この手作業によるプロセスは、初心者のユーザにとっては問題となり、新規に購入された周辺デバイスをコンピュータに初期インストールすることに手間取ることになるため、周辺デバイスに対するユーザの満足度が低下することは明らかである。
以上の説明から理解されるように、好ましいことは、インターネット(または他のネットワーク)を通して、指定のリモートサイトから初めてコンピューティングデバイスに接続されたばかりの周辺デバイスに関連して、必要とされるデバイスドライバや関連のソフトウェア/ドキュメントマテリアルを、コンピューティングデバイス上のオペレーティングシステムが自動的に取得できるようにすることである。ユーザがCD-ROMやフロッピディスクをホストコンピューティングデバイスに挿入したり、さもなければ、必要ソフトウェアを手作業で取得したりしないで済むようにすると、改善されたプラグアンドプレイ機能が得られることになる。ベンダがドライバや他のソフトウェアを提供するために、周辺デバイスと一緒にCD-ROMおよび/またはフロッピディスクを提供しないで済むようにすると、ソフトウェア開発時間が延長され、製造コストが低減されるはずである。
本発明は、周辺デバイスにストアされたネットワークアドレスを取得し、そのネットワークアドレスに置かれたリモートデバイスにアクセスして、周辺デバイスに関係する情報を得るようにした方法とシステムを目的とする。
周辺デバイスがホストコンピュータに接続されているとき、ストアされたネットワークアドレスはホストコンピュータによって読み取られ、ホストデバイスと、そのネットワークアドレスからアクセスされた周辺デバイスとの間の通信を可能にし、周辺デバイスに関係する情報がリモートデバイスからホストデバイスによってダウンロードされるようにしている。
ネットワークアドレスに置かれたリモートデバイスから情報をダウンロードすることのほかに、ホストデバイスは、リモートデバイスにストアされた、あるいはそこからダウンロードされたプログラムを自動的に実行し、周辺デバイス用のデバイスドライバをインストールし、アプリケーションプログラムをインストールし、Webページを表示し、周辺デバイスを登録し、周辺デバイスに関するドキュメンテーションをダウンロードし、ファームウェアをダウンロードして周辺デバイスにインストールし、ヘルプ情報にアクセスし、および/または周辺デバイスに関係する他のマテリアルにアクセスすることが可能になっている。当業者ならば理解されるように、周辺デバイスに関係するさまざまな、異種タイプの情報を、ネットワークアドレスからダウンロードし、表示し、あるいは取得することが可能である。
ネットワークアドレスは、好ましくは、周辺デバイスのリードオンリメモリ(read-only memory - ROM)にストアされる。しかし、別の実施形態では、ネットワークアドレスは、周辺デバイスと関連付けられていて、その周辺デバイスによって読み取り可能な再書込み可能メモリ媒体(rewritable memory medium)にストアされている。
好ましくは、本発明の方法は、周辺デバイスがホストデバイスに接続されて、動作状態にあるとき周辺デバイスを検出して列挙(enumerate)するステップを含んでいる。この列挙を行うとき、周辺デバイスは自身であることを特定し、ホストデバイスへの通信の中でネットワークアドレスを転送する。通信は、ホストデバイス上のオペレーティングシステムが、周辺デバイスに割り当てられたデバイス記述子(device descriptor)を得るために周辺デバイスにクエリ(問い合わせ)したとき開始される。このデバイス記述子は、ベンダ識別子(ID)とプロダクト識別子(ID)などの情報を含んでいる。また、オペレーティングシステムは、ストリング記述子(string descriptor)を得るためにも周辺デバイスにクエリする。周辺デバイスベンダは、ストリング記述子を周辺デバイスのメモリに入れておく。そのストリング記述子には、周辺デバイスに関係するデバイスドライバ、ソフトウェア、ドキュメント、あるいは他のマテリアルをそこから取得できるネットワークアドレスが含まれている。別の方法として、ストリング記述子には、ネットワークアドレスが周辺デバイスにストアされているメモリロケーションを指すポインタを収めておくことも可能である。オペレーティングシステムは、ベンダID、プロダクトID、および他のIDを得るためにデバイス記述子を構文解析(parse)する。また、オペレーティングシステムは、ネットワークアドレスまたはそのネットワークアドレスを指すポインタを得るためにもストリング記述子を構文解析する。
別の方法として、周辺デバイスからホストへネットワークアドレスを転送するステップは、ストリング記述子を周辺デバイスに要求して受け取る他の機能を利用することによって、列挙の後で実行することもできる。例えば、この転送ステップは、ネットワークアドレスを得るためのクラス要求を周辺デバイスに対して出すことによって実行することができ、この場合、クラスはシステム機能を動作させるために割り当てられたクラスであることが好ましい。さらに、別の方法として、この転送ステップは、周辺デバイスからネットワークアドレスを得るための1つまたは複数のベンダ固有コマンド(vendor-specific command)を実装することによって実行することもできる。
さらに、本発明の方法によれば、オペレーティングシステムによる予備的チェックも含まれ、周辺デバイスが以前にホストデバイスにインストールさていたかどうかを判断できるようにしている。そうでなければ、オペレーティングシステムは、デバイス記述子からネットワーク記述子を探し出し、ストリング要求を出し、ベンダ固有コマンドを出し、あるいは他の方法で、ネットワークアドレスを取得するようにしている。別の方法として、このチェックは、ホストデバイスがネットワークアドレスを取得した後で行うこともできる。この場合には、ネットワークアドレスにアクセスし、デバイスドライバおよび/または他の情報を取り出してインストールするタスクを起動するかどうか、および/またはネットワークアドレスにアクセスすることに関係する他のタスクを実行するかどうかが判断される。
ホストデバイスとリモートデバイスとの間の通信を可能にするステップは、周辺デバイスに関係するデータ、マシン命令、またはドキュメントを、ネットワークアドレスに置かれたリモートデバイスを自動的に取り出すステップを含んでいる。好ましくは、通信を可能にするステップは、リモートデバイス側にストアされていて、周辺デバイスに関係するプログラムを自動的に実行するステップを含んでいる。これに加えて、あるいは別の方法として、通信を可能にするステップは、ホストデバイス側にストアされていて、周辺デバイスに関係するプログラムを実行する命令を自動的に受け取るステップを含んでいる。このステップには、周辺デバイス用のドライバをホストデバイスに自動的にインストールし、周辺デバイスに関係するアプリケーションプログラムを自動的に実行し、および/またはネットワークアドレスへのリンクを用意して、ユーザがリモートデバイス側に用意されている情報を選択できるようにするステップを、さらに含めることもできる。
本発明の方法によれば、好ましくは、ブラウザ機能(browser function)をホストデバイス側で自動的に実行し、ネットワークアドレスへ自動的にナビゲートするステップが、さらに含まれている。これとは別に、本発明の方法によれば、ユーザがブラウザ機能をホストデバイス側で実行することを望んでいるかどうかを要求し、その場合、ネットワークアドレスへ自動的にナビゲートするステップが含まれている。ユーザは、ブラウザ機能をホストデバイス側で実行して、ネットワークアドレスへ自動的にナビゲートするための、さらに別の要求を禁止することが許されている。
本発明の別の態様によれば、周辺デバイスに関係する情報に自動的にアクセスするためのシステムを指向している。本発明のシステムは、マシン命令がストアされているメモリを装備したホストデバイスを含んでいる。ホストデバイス内のプロセッサはマシン命令を実行し、これを受けて、ホストデバイスは、周辺デバイスにストアされたネットワークアドレスにアクセスする。ホストデバイスは周辺デバイスに接続されているので、リモートデバイスまたはマシン読取可能媒体の別ソースとの通信を可能にするネットワーク通信インタフェースも含んでいる。好ましくは、リモートデバイスは、ネットワークを利用してホストデバイスと通信するサーバになっている。しかし、リモートデバイスは、外部ストレージデバイスのような、別の周辺デバイスにすることもできる。このようなリモートデバイスは、工業、自動車、または他のシステムで利用すると、情報を見つけるためにホストデバイスに使用させる識別子(ID)を用意しなくても、情報がどこにあるかを、周辺デバイスからホストデバイスに直接に知らせることができるので便利である。いずれの場合も、周辺デバイスに関係するデータ、マシン命令、ドキュメント、または他のマシン読取可能マテリアルは、リモートデバイスにストアされている。
本発明の別の態様は、上述した方法のステップを実行するマシン実行可能命令を格納としているマシン読取可能媒体を指向している。
以下では、本発明の上述した側面とそれに伴う利点の多くの理解を容易にするために、添付図面を参照して詳細に説明する。
本発明を実現するのに適しているパーソナルコンピュータ(personal computer - PC)の例を示す概略ブロック図である。 本発明の好適実施形態に実装されているロジックを示すフローチャートである。 周辺デバイスは、そのネットワークアドレスが標準外デバイス記述子のフィールドとしてストアされているかどうかを判断する実施形態のロジックを示すフローチャートである。 周辺デバイスは、そのネットワークアドレスインデックスがストアされているかどうかを、ベンダ固有デバイス(Vendor-Specific Device - VSD)要求を出すことによって判断する実施形態のロジックを示すフローチャートである。 ユニフォームリソース識別子(uniform resource identifier - URI)を使用して周辺デバイスをインストールし、および/または機能をアクチベートするために採用されたロジックを示すフローチャートである。 周辺デバイスに用意されているURIを使用して取得された新デバイスドライバをロードするために採用されたロジックを示すフローチャートである。 周辺デバイスから取得され、周辺デバイスに関係するURIを使用してブラウザ機能を選択的にアクチベートするために採用されたロジックを示すフローチャートである。 ユーザによって選択的に表示され、アクチベートされる周辺デバイスURIプロパティタグを作成するために採用されたロジックを示すフローチャートである。 本発明を実現するのに適しているパーソナルビークルアシスタント(personal vehicle assistant - PVA)システムの例を示す概略ブロック図である。
例示の動作環境
図1と以下の説明は、本発明を実現することができる適当なコンピューティング環境の概要を、Webページをストアしておいてそれを提供するサーバと、そのWebページを要求してそれをユーザに表示するクライアントの両方と関連付けて要約して説明することを目的としている。必ずしもその必要はないが、本発明は、全体的には、プログラムモジュールのように、パーソナルコンピュータによって実行されるコンピュータ実行可能命令を中心にして説明されている。一般的に、プログラムモジュールには、特定のタスクを実行し、あるいは特定の抽象データ型(abstract data type)を実装しているルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。さらに、当業者ならば理解されるように、本発明は、特に、Webページを表示するクライアントデバイスに関しては、他のコンピュータシステム構成で実施することも可能であり、そのような構成には、ハンドヘルドデバイス、ポケットパーソナルコンピューティングデバイス、ネットワークに接続するように構成されたデジタルセル電話、さらには、その他のマイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニックデバイス、ゲームコンソール、TVセットトップボックス、マルチプロセッサシステム、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、工業制御機器、自動車機器、航空宇宙機器などが含まれている。また、本発明は、通信ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行されるような、分散型コンピューティング環境で実施することも可能である。分散型コンピューティング環境では、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに置いておくことができる。
図1を参照して説明すると、本発明を実現するための例示システムは、従来のパーソナルコンピュータ20の形態をした汎用コンピューティングデバイスを含み、処理ユニット21、システムメモリ22、およびシステムバス23を装備している。システムバスは、システムメモリを含む種々のシステムコンポーネントを処理ユニット21に結合しており、種々タイプのバス構造のいずれかにすることが可能であり、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれている。システムメモリには、リードオンリメモリ(read-only memory - ROM)24とランダムアクセスメモリ(random access memory - RAM)25が含まれている。基本入出力システム(basic input/output system - BIOS)26は、スタートアップ時のときのように、パーソナルコンピュータ20内のエレメント間の情報転送を支援する基本ルーチンから構成され、ROM 24に格納されている。パーソナルコンピュータ20は、さらに、ハードディスク(図示せず)との間で読み書きを行うハードディスクドライブ27、取り外し可能磁気ディスク29との間で読み書きを行う磁気ディスクドライブ28、およびCD-ROMや他の光媒体などの、取り外し可能光ディスク31との間で読み書きを行う光ディスクドライブ30を装備している。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれ、ハードディスクドライブインタフェース32、磁気ディスクドライブインタフェース33、および光ディスクドライブインタフェース34を介してシステムバス23に接続されている。これらのドライブとそれぞれに関連するコンピュータ読取可能媒体は不揮発性ストレージとして、コンピュータ読取可能マシン命令、データ構造、プログラムモジュール、およびその他のデータをパーソナルコンピュータ20用に格納している。ここで説明している例示環境では、ハードディスク、取り外し可能磁気ディスク29、および取り外し可能光ディスク31が採用されているが、当業者ならば理解されるように、コンピュータによってアクセス可能なデータを格納しておくことができる他のタイプのコンピュータ読取可能媒体を、例示の動作環境で使用することも可能であり、その中には、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)などが含まれている。
いくつかのプログラムモジュールは、ハードディスク、磁気ディスク29、光ディスク31、ROM 24またはRAM 25に格納しておくことが可能であり、その中には、オペレーティングシステム35(ブラウザ機能を含む)、1つまたは2つ以上のアプリケーションプログラム36(セットアッププログラムなど)、他のプログラムモジュール37、およびプログラムデータ38が含まれている。ユーザは、キーボード40やポインティングデバイス42などの入力デバイスを通して、コマンドや情報をパーソナルコンピュータに入力することができる。その他の入力デバイス(図示せず)としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、デジタルカメラなどがある。上記入力デバイスおよびその他の入力デバイスは、システムバスに結合された入出力(I/O)デバイスインタフェース46を通して処理ユニット21に接続されていることが多い。プリンタ(図示せず)などの他の出力デバイスも、システムバスに結合されたI/Oデバイスインタフェース46を通して処理ユニット21に接続することが可能になっている。同様に、モニタ47や他のタイプのディスプレイデバイスも、ビデオアダプタ48などの、該当インタフェースを介してシステムバス23に接続され、Webページを表示するために使用可能になっている。モニタのほかに、パーソナルコンピュータは、スピーカなどの、他の周辺出力デバイス(図示せず)に接続されていることがよくある(図示していないが、サウンドカードや他のオーディオインタフェースを介して)。このような入出力デバイスは、周辺デバイス(peripheral device)と総称されている。本発明によれば、説明の便宜上、総称周辺デバイス56は、I/Oデバイスインタフェース46を介してパーソナルコンピュータ20に結合されている。I/Oデバイスインタフェースという用語には、シリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはUSBポート用に使用される、各々の固有インタフェースが含まれている。I/Oデバイスインタフェース46を通して、情報は、システムバス23を経由して周辺デバイス56と処理ユニット21の間でやりとりされる。周辺デバイス56は、情報をストアしておくファームウェアメモリ58を備えている。ファームウェアメモリ58としては、消去可能プログラマブルリードオンリメモリ(erasable programmable read-only memory - EPROM)、フラッシュメモリ、磁気ストレージ、その他のメモリがある。ファームウェアメモリ58には、周辺デバイス56に関係するベンダID、プロダクトID、シリアル番号、ファームウェア改訂(revision)レベル、および/または他の情報がストアされている。また、ファームウェアメモリ58には、周辺デバイスに関係するドライバ、データ、および/または他のマテリアルを、そこからアクセスし、および/またはダウンロードできるロケーションを示しているURIまたは他のタイプのアドレスもストアされている。
パーソナルコンピュータ20は、リモートコンピュータ49などの、1つまたは2つ以上のリモートソースとの論理コネクションを使用するネットワーキング環境で動作させることが可能になっている。本発明によれば、周辺デバイスのメモリにストアされるURIまたはアドレスは、リモートコンピュータ49を通してアクセスされるロケーションを指定することができる。リモートコンピュータ49としては、別のパーソナルコンピュータ、サーバ(これは、全体的に、パーソナルコンピュータ20と非常によく似た構成になっているのが代表的である)、ルータ、ネットワークパーソナルコンピュータ、ピアデバイス、衛星、または他の共通ネットワークノードなどがあり、図1には、外部メモリストレージデバイス50だけが示されているが、パーソナルコンピュータ20に関連して上述したエレメントの多くまたは全部を装備しているのが代表的である。図1に示す論理コネクションには、ローカルエリアネットワーク(local area network - LAN)51と広域ネットワーク(wide area network - WAN)52が含まれている。このようなネットワーキング環境は、オフィス、企業内(enterprise-wide)コンピュータネットワーク、イントラネット、およびインターネット(the Internet)で幅広く使用されている。
LANネットワーキング環境で使用されるときは、パーソナルコンピュータ20は、ネットワークインタフェースまたはアダプタ53を通してLAN 51に接続されている。WANネットワーキング環境で使用されるときは、パーソナルコンピュータ20は、インターネットなどのWAN 52上の通信を確立するためのモデム54または他の手段を装備しているのが代表的である。モデム54は内蔵型と外付け型があるが、どちらも、システムバス23に結合されているか、あるいはI/Oデバイスインタフェース46を介して、つまり、シリアルポートを通してバスに結合されている。ネットワーキング環境では、パーソナルコンピュータ20に関連して示したプログラムモジュール、またはその一部は、リモートメモリストレージデバイスにストアしておくことができる。以上の説明から理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間の通信リンクを確立するための他の手段を使用することも可能であり、そのようなものとしては、ワイヤレス通信(無線通信)とワイドバンドネットワークリンクがある。
本発明の実装例
以下では、ホストデバイスとしての働きをするパーソナルコンピュータ20と、プリンタ、モデム、デジタルカメラ、キーボード、および/またはコンピューティングデバイスと結合されて通信を行うように構成された他の、ほとんどのタイプのデバイス周辺デバイス56との間で通信を行うためにI/Oデバイスインタフェース46を使用した好適実施形態の実装例について説明する。本発明は、プラグアンドプレイの設計になっている周辺デバイスと関連して使用すると特に便利であり、さらに具体的には、USB規格(仕様)に準拠する任意の周辺デバイスのように、コンピュータにホット接続される設計になっている周辺デバイスで使用すると便利である。当業者ならば理解されるように、以下に示されている詳細は若干修正するだけで、プラグアンドプレイ以外のテクノロジにも、RS-232Cシリアル、IEEE 1284パラレル、IrDA赤外線、その他の標準などの、周辺デバイスとの他の通信形態にも適用することが可能である。このことから理解されるように、本発明は、ほとんどのタイプの通信プロトコルを使用してホストデバイスと通信する、ほとんどのタイプの周辺デバイスにも適用可能である。しかし、USBポートを通してコンピューティングデバイスに接続される設計になっている周辺デバイスは、以下の例では、本発明の説明と開示を単純化するために統一的に使用されている。
図2は、周辺デバイス用のデバイスドライバをインストールし、および/または周辺デバイスに関係するアプリケーションソフトウェアや他のマテリアルにアクセスする実施形態で採用されている全体ロジックを示す。本発明の重要なアプリケーションは、周辺デバイスが初めてコンピューティングデバイスに接続されるとき、リモートサイトに自動的にアクセスして、周辺デバイス用のデバイスドライバをダウンロードし、インストール可能にすることである。ステップ60では、ネットワークアドレスが周辺デバイスにストアされる。好ましくは、ネットワークアドレスは、デバイスの製造時か、あるいは少なくとも、周辺デバイスがエンドユーザに販売される前に、周辺デバイスのROMにストアされる。
本発明の別の実施形態は、既存の周辺デバイスに関係するものであり、周辺デバイスの識別子(ID)および/または他の情報は、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ(electrically erasable programmable read-only memory - EEPROM)、または他の形態の再書込み可能不揮発性メモリ(この中には、フロッピディスク、カートリッジ、メモリスティック、またはメモリカードのような、取り外し可能および/または再書込み可能記憶媒体も含まれることがある)内で更新または修正可能になっている。このようなデバイスでは、更新情報や代替情報は直接に得ることが可能である。取り外し可能または再書込み可能記憶媒体を備えた周辺デバイスの例としては、ある種のプリンタ、ゲームコンソール、および工業マシンがある。望ましいことは、周辺デバイスに関係するデバイスドライバおよび/または他のマテリアルを収めている取り外し可能記憶媒体を使用しないで済むようにすることであるが、ネットワークアドレスを含んでいる新しい周辺デバイスで既存周辺デバイスを置き換えるのではなく、既存周辺デバイスをアップグレードした方が、経済的に有利であることがある。従って、場合によっては、取り外し可能および/または再書込み可能記憶媒体からネットワークアドレスを既存周辺デバイスに追加することが可能である。この方法によると、ある種の既存周辺デバイスは、周辺デバイスにすでに入っている他の識別子(ID)の中から、ネットワークアドレスを含むようにアップグレードすることが可能になる。このように既存周辺デバイスを一度更新するだけで、その既存周辺デバイスはホストデバイスにネットワークアドレスを与えることが可能になり、この場合、ホストは、将来のデバイスドライバ修正版および/または他のマテリアルを得るために、引き続いて別のCD-ROMや他の取り外し可能媒体に頼らなくても、将来のデバイスドライバ修正版と他の情報にアクセスすることが可能になる。このようにすると、既存周辺デバイスが、必要なデバイスドライバが存在しない別のホストデバイスに移された場合や、必要なデバイスドライバを収めているオリジナルCD-ROMが紛失した場合に特に好都合である。従って、ステップ60には、ネットワークアドレスを収めている取り外し可能または再書込み可能媒体を周辺デバイスに装備させ、周辺デバイスに関係する情報がそのネットワークアドレスからアクセス可能とすることが含まれている。
ステップ61では、ユーザは周辺デバイスをUSBポートに、つまり、I/Oデバイスインタフェース46(図1に図示)に接続する。別の方法として、ステップ61は、周辺デバイスがすでに接続されているホストコンピュータ20に電力を供給するようにすることもできる。さらに別の方法では、ステップ61を物理コネクションにするのではなく、論理コネクションにすることが可能である。このようなことは、周辺デバイスを、ホストコンピュータ20の赤外線や無線周波数(RF)範囲内、あるいは他の通信範囲内にするときに行われている。
周辺デバイスがホストに接続されると、オペレーティングシステム35(図1に図示)は、ステップ62でその新デバイスを検出し、列挙する。前述したように、この列挙プロセス期間に、オペレーティングシステム35はデバイス記述子を得るために周辺デバイスにクエリ(問い合わせ)する。デバイス記述子には、周辺デバイスに関する情報フィールドがあり、その中には、ベンダIDとプロダクトIDが含まれている。デバイス記述子のほかに、コンフィギュレーション(構成)、インタフェースおよびエンドポイント記述子などの、他の標準記述子がデバイスに要求される。
同じく上述したように、オペレーティングシステム35は、ネットワークアドレス、またはそのアドレスを指すインデックスを得るために周辺デバイスにクエリする。ネットワークアドレスは、0xFFのように、周辺デバイス内の事前定義インデックにストアしておくことができる。既知の事前定義または予約インデックスが使用される場合は、オペレーティングシステムは、ストリング記述子を求める標準要求でそのインデックスにクエリするだけで済むことになる。
別の方法として、オペレーティングシステムは、事前定義インデックスでクラス要求を出すことも可能である。クラス要求は、あるクラスの周辺デバイスによって理解されるコマンドである。例えば、プリンタはあるクラスの周辺デバイスを構成しているのに対し、モニタは別のクラスの周辺デバイスを構成している。準拠するプリンタは、標準要求のほかに、プリンタクラスに固有の要求を理解することができる。同様に、モニタは、標準要求のほかに、モニタクラスに固有の要求を理解する。しかし、URIは、周辺デバイスの種類に関係なく取得できるので、オペレーティングシステムクラスは、ネットワークアドレスを求める要求を追加するように構成されていることが好ましい。
記述子が分かると、オペレーティングシステム35は、その周辺デバイスは以前にインストールされていたかどうかを、判定ステップ64で判断する。例えば、オペレーティングシステムは、周辺デバイス情報がオペレーティングシステムのデバイスレジストリにリストされているかどうか、該当のデバイスドライバが使用可能であるかどうかをチェックする。このチェックには、周辺デバイスのファームウェア改訂番号がレジストリにリストされているものと同じであるかどうかを確認することを含めることができる。周辺デバイスが以前にパーソナルコンピュータ20にインストールされていれば(例えば、そのレジストリにリストされていれば)、オペレーティングシステム35は、デバイスドライバおよび/または他のソフトウェアをメモリ22にロードするだけである。
周辺デバイスがパーソナルコンピュータ20上に登録されていなければ、あるいはデバイスドライバおよび/または他のソフトウェアがパーソナルコンピュータ20上で使用可能になっていなければ、オペレーティングシステム35は判定ステップ66を実行して、ネットワークアドレスが周辺デバイスにストアされているかどうかを判断する。この判断は、図3と図4を参照して下述するように、いく通りかの方法で行うことができる。ネットワークアドレスが周辺デバイスにストアされていなければ、デバイスドライバおよび/または他のソフトウェアは、従来技術で現在行われているように、ステップ68で、手作業でロードしなければならない。手作業によるローディングは、CD-ROMやフロッピディスクのような記憶媒体を、該当ドライブに挿入して必要ソフトウェアをロードするか、あるいはインターネットを通してデバイスドライバおよび/または他のソフトウェアを手作業でダウンロードするか、あるいはユーザの介入を必要とする他のプロシージャを実行することによって行われるのが代表的である。手作業によるローディングは、ネットワーク通信がパーソナルコンピュータ20で利用できないか、あるいはアクティブ状態にない場合にも、必要になることがある。
他方、ネットワークアドレスが周辺デバイスにストアされていれば、オペレーティングシステム35はステップ70を実行して、ネットワークアドレスからアクセスされたリモートデバイスからデバイスドライバおよび/または他のソフトウェアのダウンロードを開始する。好ましくは、オペレーティングシステム35は、ネットワークアドレスを通してリモートデバイスとの通信を確立し、そのあと、以前に取得された周辺デバイス情報をリモートデバイスに渡すようにしている。例えば、オペレーティングシステム35は、プロダクトIDとファームウェア改訂レベルをリモートサーバに渡すことができるので、リモートサーバは、どのデバイスドライバ、アプリケーションソフトウェア、および/または他のマテリアルをダウンロードするのに相応しいかを、その情報を使用して判断する。デバイスに関する情報を周辺デバイスメーカおよび/または企業のイントラネットサーバに渡すことを利用すると、重複するマテリアルを同じ企業に送信する必要性が少なくなり、さもなければ、同一タイプの複数周辺デバイスのインストールを管理する必要性が少なくなることになる。しかし、好ましくは、マテリアルのダウンローディングは、ハイパテキスト転送プロトコル(hypertext transfer protocol - HTTP)、ファイル転送プロトコル(file transfer protocol - FTP)、または他の通信方式で行われるファイル転送要求によって行われる。
最後に、ネットワークアドレスで参照されたサイトからダウンロードされたデバイスドライバおよび/または他のソフトウェアは、ステップ72でインストールされる。このインストールは完全に自動化することも、ユーザがインストールフィーチャをカストマイズし、あるいは周辺デバイスまたは関連ソフトウェアのパラメータを選択できるようにする「ウィザード(wizard)」またはセットアッププログラムを使用して行うことも可能である。
次に、ネットワークアドレスが周辺デバイスにストアされているかどうかを判断するステップが実装されている好適実施例について、図3を参照して説明する。上述したように、ステップ62で列挙を行うとき(図2)、オペレーティングシステム35(図1)は、いくつかの記述子を周辺デバイスに要求し、その中には、ユニフォームリソースID情報ストリング記述子が含まれている。上述したように、ストリング記述子は、ネットワークアドレス、そのネットワークアドレスを含んでいる別のユニフォームリソースID情報ストリングを指すポインタ、またはネットワークアドレスおよび/または追加URI情報を収めておくことができる。USBストリングは、オペレーティングシステム35が解釈できる、国際標準であるUNICODE(登録商標)でエンコード(符号化)されている。ユニフォームリソースID情報ストリング記述子および他の記述子は、RAM25(図1)にデータ80として格納されている。オペレーティングシステム35は、ステップ82で、別々のURIデータエレメントになるようにこれらの記述子を構文解析する。判定ステップ84では、オペレーティングシステム35は、値がゼロであるかどうかをチェックするか、あるいは周辺デバイスにネットワークアドレスが用意されていないことを示す他の事前定義値をチェックすることによって、ネットワークアドレスを指すポインタが存在するかどうかを判断する。構文解析した記述子からネットワークアドレスが判明しなかったときは、全体的判断の結果(図2のステップ66)がステップ86で "NO" にセットされたあと、インストールプロセスは続けられ、ドライバおよび/または他のソフトウェアがCD-ROMまたはフロッピディスクから従来のように手作業でロードされるか、あるいはインターネットまたは他のネットワーク経由で、手作業でダウンロードすることによってロードされる(図2のステップ68)。しかるに、ネットワークアドレスが上記方法で判明したときは、全体的判断の結果(図2の判定ステップ66)はステップ88で、"YES" にセットされるか、あるいは正に符号化される。その結果、全体的インストールプロセスが続けられ、ネットワーク経由で自動的にロードされることになる(図2のステップ70)。
0xFFのように、URI情報ストリングで要求される事前定義または予約ストリング記述子インデックスを使用しないで済むようにするために、あるいはUSB標準記述子フォーマットを使用しなくても済むようにするために、図4に示す別の実施形態では、ネットワークアドレスが周辺デバイスにストアされているかどうか、そしてそれがどこにストアされているかを判断するようになっている。標準列挙プロセス期間に、ステップ90で、オペレーティングシステム35は、周辺デバイスのメモリに置かれているネットワークアドレスまたはネットワークアドレスを指すポインタを返すように、標準外ベンダ固有デバイス(Vendor Specific Device - VSD)要求を周辺デバイスに対して発行する。VSD要求は、ベンダによって定義され、周辺デバイスによって認識されるコマンドである。USB標準では、ベンダが独自の要求コマンドを定義できるようにする要求コードが予約されている。具体的には、ユニバーサルシリアルバス規格(仕様)改訂版2.0、セクション9.3のテーブル9-2には、"bmRequestType" フィールドのビット5と6を2(バイナリ値では10)の値にセットすると、要求がベンダ要求であると特定されることが規定されている。代表例として、ベンダは周辺デバイスメーカであり、VSD要求は、製造時に使用されるように、あるいはインストール後は、周辺デバイスの通常オペレーション期間にデバイスドライバによって使用されるように、ベンダによって定義されている。このフィーチャによると、周辺デバイスメーカは、周辺デバイスに固有のタスクを実行するように周辺デバイスに指示することができる。しかし、本実施形態では、ユニークなVSD要求は、ネットワークアドレスを得るためにオペレーティングシステム35によって出される。従って、どの周辺デバイスメーカも、オペレーティングシステム35に用意されているユニークなコマンドを利用することが可能になっている。前記のUSB規格のセクション9.5によれば、コンフィギュレーション情報から独立しているか、あるいは標準外フォーマットを使用しているベンダ固有記述子が周辺デバイスから戻されるようになっている。
すでに述べたように、さらに別の実施形態では、オペレーティングシステムから出されたネットワークアドレス要求に対して、"bmRequestType" のビット5と6を1の値(バイナリ値では01)にセットすることによって新しいUSB「クラス」を設定するようにしている。どちらの場合も、VSDまたはクラス要求、例えば、GET_NETWORK_ADDRESSを用意することができ、列挙期間に、オペレーティングシステム35は、この要求を周辺デバイスに対して出すことが可能になっている。この要求を受けて、周辺デバイスはストアされたネットワークアドレスを戻すか、あるいは周辺デバイスのファームウェアメモリ内でネットワークアドレスがストアされているロケーションを指すポインタを戻している。周辺デバイスからネットワークアドレスまたはポインタがオペレーティングシステム35に戻されると、オペレーティングシステムはネットワークアドレス、またはポインタで指されているロケーション(そこにネットワークアドレスがストアされている)を、ステップ92で読み取ってメモリに入れる。判定ステップ94では、オペレーティングシステム35は、読み取った値がゼロに等しいかどうか、あるいはネットワークアドレスが用意されていないことを示す他の事前定義値に等しいかどうかを判断する。そうであれば、全体的判断の結果(図2のステップ66)は、ステップ86で “NO” にセットされる。そうでなければ、全体的判断の反対結果(ステップ66)は、ステップ88で "YES" にセットされる。
本発明のもっと詳細な実施形態は図5に示されている。この実施形態では、本発明は、Microsoft社のWINDOWS(登録商標)オペレーティングシステムに組み込まれている。具体的には、USB周辺デバイスのホット接続インストールを受け持つ部分は、オペレーティングシステムに組み込まれている。上述したように、USB周辺デバイスのホット接続機能と後続の列挙は、ユーザがUSBデバイスを、パーソナルコンピュータ20などのホストコンピューティングデバイスに接続するか、あるいはUSB周辺デバイスが接続されたままでホストコンピューティングデバイスに電源が入れられたとき、アクチベートされる。ステップ110と112は、これらの代替実施形態を示している。ステップ114では、バスドライバ(Bus Driver)プログラムは新しいUSB周辺デバイスを検出し、バスに接続されたデバイスの数が変わったことをプラグアンドプレイマネージャ(Plug-and-Play Manager)プログラムに通知する。ステップ116では、プラグアンドプレイマネージャは、デバイス記述子と他のデバイス機能を得るために新周辺デバイスにクエリするI/O要求パケット(I/O request packet - IRQ)を送信することによってそのデバイスを列挙する。詳細な列挙タスクは、プラグアンドプレイマネージャプログラムと協力し合ってバスドライバプログラムによって実行される。バスドライバプログラムは、PCI(peripheral component interconnect - 周辺コンポーネント相互接続)またはPCMCIA(Personal Computer Memory Card International Association - パーソナルコンピュータメモリカード国際協議会)の親バスドライバであるのが代表的である。この列挙プロセスは、プラグアンドプレイマネージャが、そのベンダIDやプロダクトIDのように、周辺デバイスに関する情報を収集する点で、上述したものと類似している。同じく上述したように、この時点で、プラグアンドプレイマネージャは、もし存在すれば、ネットワークアドレスと他のストリング記述子を周辺デバイスから取得する。
この実施形態では、ネットワークアドレスは、インターネットリソースに関するWorld Wide Webコンソーシアム標準に準拠するURIの形態になっている。ネットワークアドレスを特定するURIストリングのほかに、他のサポートURI情報を周辺デバイスから取得することが可能になっている。例えば、ユーザフレンドリな名前やタイトルを取得して表示することも、URIの使用に関してオペレーティングシステム35に指示するための別の指示を取得することも可能になっている。この追加情報が周辺デバイスにストリング記述子としてストアされていれば、これは事前定義ストリングインデックスとして得ることができる。別の方法として、この追加情報は、上述したように、ClassドライバまたはVSD要求を通して取得することが可能である。また、上述したように、情報ストリングは、直接に取得することも、周辺デバイスのファームウェアメモリ内のロケーションを指すポインタを通して取得することもできる。1つまたは2つ以上のストリング内で別の符号化を行うと、種々タイプの情報を区別することができる。例えば、前向きスラッシュ記号(/)を使用すると、情報のタイプまたはその後に続く文字を情報のタイプとして扱うコマンドを示すことができる。スラッシュT(/T)は、その後に続く文字が、表示されるタイトルまたはテキストであることを示すことができ、スラッシュI(/I)は、オペレーティングシステムに対する指示を示すことができ、スラッシュS(/S)は、URIストリングを示すことができる。従来と同じように、これらタイプのコマンドの1つのあとに続く文字は、引用符で囲まれた実際のストリングにすることも、周辺デバイスのファームウェアメモリ内でストリング文字がストアされている別のアドレスを指すポインタにすることも可能である。
周辺デバイスから周辺デバイスIDと他の追加情報を取得すると、プラグアンドプレイマネージャは、以前にインストールされた周辺デバイスのレジストリを、ステップ118で検査する。判定ステップ120では、プラグアンドプレイマネージャは、新たに接続された周辺デバイスが以前にインストールされていたかどうかを判断する。そうでなければ、プラグアンドプレイマネージャは、その新デバイスドライバをロードするオペレーションをステップ122で実行する。これとは逆に、周辺デバイスが以前にインストールされていれば、プラグアンドプレイマネージャは、インストールされているデバイスドライバをステップ124でロードする。この場合も、プレイアンドプレイマネージャは、Device-URIダイナミックリンクライブラリ(dynamic link library - DLL)をステップ126で実行することによってURIを使用すれば、そのURIを使用するブラウザや他の機能を使用することができる。
図6は、図5のステップ122に示すように、新デバイスドライバをロードするときの詳細を示す図である。最初に、プラグアンドプレイマネージャは、ステップ130に示すように、周辺デバイスURIストリング情報も含めて、デバイスIDデータをデバイスのレジストリにセーブする。ステップ132では、プラグアンドプレイマネージャはNew-Device DLLを実行し、例えば、インターネット上のURIで特定されたリモートサイトからダウンロードするといった方法で、ネットワークコネクション上のURIからデバイスドライバが取得される。ステップ134では、New-Device DLLは、デバイスのレジストリからURIと他のデバイスIDおよび情報をロードする。このステップを実行するために、New-Device DLLは、セットアップアプリケーションプログラムインタフェース(application program interface - API)とコンフィギュレーションマネージャAPI機能をコールする。これらの機能は、新しく接続された周辺デバイス用の可能な限りのデバイスドライバのリストを作るために使用される。このリストは、ホストマシン側にまたはURIにストアされている情報(*.INF)から作られる。判定ステップ136では、New-Device DLLは、デバイスURIがレジストリに存在するかどうかを確認する。周辺デバイスにURIが用意されていないときは、ユーザは手作業でインストールを行わなければならない。URIがレジストリにすでに存在していれば、オプションとして、New-Device DLLは、ステップ138でそのURIをユーザに表示することができる。さらに、オプションとして、New-Device DLLは、そのURIをアクチベートするかどうかをユーザに選択させるか、あるいは手作業のインストールをそのまま続けさせることもできる。判定ステップ140でユーザがURIをアクチベートしたか、あるいはオペレーティングシステムがURIを自動的にアクチベートしたときは、New-Device DLLはステップ142でブラウザ機能を実行し、URIがブラウザのアドレスラインにロードされる。ブラウザ機能が得られたURI、例えば、http://www.Microsoft.com/hardware/update/default.htmを使用してリモートサイトにアクセスすると、New-Device DLLはそこからデバイスドライバを取得することができる。
当業者ならば理解されるように、URIはアクティブサーバページ(active server page - ASP)にすることも、他のサーバ側機能にすることも可能である。また、上述したように、ファイル転送プロトコル(FTP)通信を開始するときにURIを使用して、リモートサイトからデバイスドライバを取得することもできる。従って、ステップ142では、デバイスドライバファイルをパーソナルコンピュータ20に転送することも、あるいは*.INFファイルのロケーションを示すだけにしてNew-Device DLLがデバイスドライバを見付けるようにすることも可能であり、これは、オペレーティングシステムから要求されたとき、ユーザがデバイスドライバの更新ロケーションを手作業で入力するときに行われるのと同じである。ステップ144では、New-Device DLLは、周辺デバイスのインストールを行い、ダウンロードまたは見付けられたデバイスドライバが選択可能デバイスドライバのリストに組み入れられる。最良デバイスドライバが選択され、パーソナルコンピュータ20にインストールされると、プラグアンドプレイマネージャは、ステップ146でそのデバイスドライバをメモリにロードするので、周辺デバイスの使用が可能になる。
図7に示すように、URIを使用すると、URIに置かれたアプリケーションプログラムをアクチベートし、URIに置かれたWebページを表示し、あるいはURIに用意されている追加情報やサービスを得ることもできる。そのために、プラグアンドプレイマネージャは、URIがレジスタに存在するかどうかを判定ステップ150で確かめる。存在しなければ、追加情報やサービスがないので、得ることができない。URIが存在すれば、URIをアクチベートすることを求めるプロプトがユーザに出されるのを禁止するように、フラグがセットされていたかどうかが判定ステップ152で判断される。このフィーチャは、例えば、広告がURIから表示されるのをユーザが望んでいない場合に使用すると、便利である。「再要求しない(don't ask again)」オプションが以前に選択され、ブラウザ機能のチェックボックスのエントリが、リモートサイトに置かれたWebページを表示していれば、URIをもつブラウザ機能をアクチベートすることを求めるプロプトは、ユーザに出されないことになる。別の方法は、URIをもつブラウザ機能をアクチベートすることを求めるプロプトをユーザに出すのを禁止し、URIをもつブラウザ機能を自動的にアクチベートするだけにすることである。しかし、好ましい方法は、URIをもつブラウザ機能をアクチベートするオプションをユーザに与えることである。
「再要求しない」フラグが偽であれば、つまり、チェックボックスがユーザによって以前に選択されていなければ、プラグアンドプレイマネージャは、ステップ154でDevice-URI DLLを実行する。ステップ156では、Device-URI DLLは、周辺デバイスにURIがあることをユーザに通知し、そのURIをアクチベートしたいのかどうかを求めるプロンプトをユーザに出す。そのプロンプトでは、ユーザは、オプションとして、チェックボックスをチェックして、「再要求しない」フラグをセットすることもできる。ユーザがプロンプトに対する応答を送ると、ユーザがチェックボックスをチェックしたかどうかが、判定ステップ158で判断される。そうであれば、Device-URI DLLは、ステップ160で「再要求しない」フラグを真にセットする。チェックしていなければ、Device-URI DLLは、ステップ162で「再要求しない」フラグを偽にセットする。判定ステップ164では、Device-URI DLLは、ユーザがURIをアクチベートすることを選択したかどうかを、さらに判断する。選択していなければ、プロセスは完了する。しかし、選択していれば、Device-URI DLLは、ステップ166でブラウザ機能をアクチベートし、URIで指定されたネットワークアドレスへナビゲートする。前述したように、URIで表されたサイトには、ブラウザ機能にデバイスドライバを表示させ、広告を表示させ、アプリケーションプログラムのダウンロードとセットアップを開始させ、ヘルプ情報を提供させ、周辺デバイスに関するユーザマニュアルをダウンロードさせ、あるいは他のサービスと情報を提供させるものがある。
図8は、デバイスURIを別の利用の仕方をするために採用されたステップを示す図である。このフィーチャによると、ユーザはクリックすると、いつでもURIをアクチベートできるような形でデバイスURIを表示することができる。ステップ170では、ユーザは、Microsoft社のWINDOWS(登録商標)オペレーティングシステムのコントロールパネルから選択できるデバイスマネージャ(Device Manager)プログラムを実行する。このデバイスマネージャは、システムに接続されたすべてのハードウェアデバイスのリストを表示し、その中には、URIを収めている周辺デバイスが含まれている。ユーザは、ステップ172で周辺デバイスを表すアイコンをクリックし、その周辺デバイスのプロパティを表示することを選択する。ステップ174では、デバイスマネージャは、デバイスプロパティシートの表示を開始し、選択した周辺デバイスに関係する種々のプロパティページへは、タブで移るようになっている。判定ステップ176では、デバイスマネージャはデバイスのレジストリからデバイスURIストリングを探し出す。選択した周辺デバイスのレジストリにURIストリングがあれば、デバイスマネージャはURIプロパティページを呼び出し、そこには、URIストリングをクリックすると、URIで指定されたネットワークアドレスとの通信がアクチベートされるようなフォーマットで、デバイスURIストリング(1つまたは複数)が表示されている。好ましくは、ステップ178では、このオペレーションは、ブラウザ機能を実行し、URIで指定されたロケーションまたはWebページへナビゲートすることによって行われる。URIがアクチベートされると(またはURIストリングがレジストリになければ)、デバイスマネージャはステップ180を実行し、標準周辺プロパティページを作成する。
図9を参照して説明すると、図には、特殊目的コンピューティングデバイスに関係する、本発明の別の応用が示されている。このコンピューティングデバイスはパーソナルビークルアシスタント(personal vehicle assistant - PVA)220になっている。PVAは、いくつかの点でパーソナルデータアシスタント(personal data assistant - PDA)に類似している。しかし、PVAは、自動車のような車両で使用するのに最適化されている。マイクロプロセッサは、最新車両のオペレーションでますます重要な役割を果たし、車両、その照明システム、エンターテイメントシステムのオペレーションを制御するために使用され、最近では、緊急アシスタンスとナビゲーション機能を提供するのに使用されている。ドライバのドライビング時間がより安全に、より生産的に、より楽しいものになるかは、車両に搭載されたこれらの高度なフィーチャにかかっている。現在市販されている車両および開発中の車両の設計には、ディスプレイスクリーン、スピーカ、セルラ電話に結合されたリモートマイクロホン、デジタルナビゲーションマップのドライブ、およびWebアクセスといったような、エレクトロニックフィーチャが組み込まれている。車両では、各周辺デバイス用の個々のワイヤを配線する必要があるため、各周辺デバイスをPVAに接続する費用がかなりの部分を占めている。この問題を解消するために、周辺バスが使用され、多数の周辺デバイスが一組のワイヤ上でPVAと通信すること(および相互に通信すること)を可能にしている。
当業者ならば理解されるように、図9に示す実施例は、本発明が、パーソナルコンピュータおよび従来からパーソナルコンピュータと関連付けられている周辺デバイス以外にも、多数のタイプのコンピューティングデバイスと周辺デバイスに応用可能であることを示しているにすぎない。本発明は、工業用プログラマブルロジックコントローラ、ビルディング管理コンピュータ、フライトコントロールコンピュータ、および、ほとんどどのタイプの周辺デバイスともやりとりする他のインテリジェントデバイスといった、他の分野における特殊目的コンピューティングデバイスにも応用可能であることは、もちろんである。
PVA 220は、処理ユニット221、システムメモリ222、システムバス223、ストレージデバイスインタフェース232、バスインタフェース246、およびネットワークインタフェース253を装備している。ビデオアダプタ、プリンタインタフェースなどの他のコンポーネントを、オプションとしてPVA 220に装備させることも可能であるが、これらは、図面を簡単にするため示されていない。システムバスは、システムメモリを含む種々のシステムコンポーネントを処理ユニット221に結合しており、従来タイプのバス構造とアーキテクチャの1つまたはいくつかで構成することが可能であり、その中には、メモリバスやメモリコントローラ、周辺バス、およびローカルバスが含まれている。
システムメモリとしては、ROM 224とRAM 225がある。BIOS 226は、PVA 220内のコンポーネント間で情報を転送するために使用される基本ルーチンで構成され、ROM 224に格納されている。PVA 220は、さらに、ストレージデバイス227とのインタフェースとなって、永続的または取り外し可能媒体との間で読み書きを行うようにしている。ストレージデバイス227は、ストレージデバイスインタフェース232を介してシステムバス223に接続されている。ストレージデバイスとその関連マシン読取可能媒体は、PVA 220用のマシン命令、データ構造、プログラムモジュール、および他のデータをストアしている。当業者ならば理解されるように、プロセッサがアクセスできるデータをストアするために、多種類のマシン読取可能媒体が使用可能であり、そのようなものとしては、フロッピディスク、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイ(Bernoulli)カートリッジ、RAM、ROMなどがある。いくつかのプログラムモジュールは、マシン読取可能媒体に格納しておくことが可能であり、その中には、オペレーティングシステム235(ブラウザ機能を含む)、1つまたは2つ以上のアプリケーションプログラム(セットアッププログラムなど)、他のプログラムモジュール237、およびプログラムデータ238が含まれている。
PVA 220は、バスインタフェース246と周辺バス252を介して周辺デバイスと通信する。周辺バス252は、IEEE 1394バス、ISO 11898バス(例えば、Bosch社のController Area Network)、または他のタイプのバスにすることができる。当業者ならば理解されるように、本発明を採用できる他の分野には、他にも多数の周辺バスが存在している。例えば、工業製造分野では、EN 50170バス(例えば、Profibus)、スマート周辺デバイス用のISA SP50バス(例えば、Fieldbus Foundationバス)が使用され、航空宇宙分野では、ライン交換可能ユニット用のARINC(登録商標)バスが使用されている。応用分野によっては、システムバス223を拡張するだけで済む場合もある。
なお、従来技術のオペレーティングシステムでは、新たに接続された周辺デバイスで使用できるデバイスドライバを探し出すために、特定のディレクトリを指定することが普通になっている。これに対して、本発明では、オペレーティングシステムは、デバイスドライバが置かれているロケーションを周辺デバイスから取得することが要件になっている。言い換えれば、周辺デバイスに用意されているロケーションまたはアドレスから、周辺デバイスに関係する情報、例えば、周辺デバイス用のデバイスドライバが見つかるようにしている。本発明の使い方を示している図9の実施形態では、これと同じ新規機能が実装されている。
図9に示す周辺バス252には、デジタルセル電話233とGPS(global positioning system - 全地球測位システム)234が接続されている。周辺バス252に接続される周辺デバイスの代表例として、他にも、コンパクトディスクプレイヤ、デジタルビデオディスクプレイヤなどのように、現在自動車に内蔵されている周辺デバイスがある。デバイスドライバや他のマテリアルが周辺バス252に接続されているとき、これらに直接アクセスすることを可能にする追加ソース249を設けることも可能である。周辺デバイスを新たに接続することは、初期製造時にも、サービスステーションでの保守時にも、車両が使用状態に置かれた後の他の時期にも行うことができる。
その概要を上述したように、周辺バス252に接続される各周辺デバイスは周辺ノード256であり、情報を収めておくファームウェアメモリ258を装備している。ファームウェアメモリ258としては、EPROM、フラッシュメモリ、磁気ストレージ、あるいは他のタイプのメモリがある。ファームウェアメモリ258は、周辺デバイス256に関係するベンダID、プロダクトID、および/または他の情報をストアしている。そのほかに、ファームウェアメモリにストアされるものとして、周辺ノード用のドライバおよび周辺ノードに関係する他のマテリアルを、そこからアクセスし、および/またはダウンロードできるロケーションを示しているURIまたは他のタイプのアドレスもある。
従来と同じように、周辺ノードのファームウェアメモリにストアされるURIまたはアドレスは、そこから追加ソース249にアクセスできるロケーションを指定することができる。追加ソース249としては、別のPVA、外部サーバ(これはパーソナルコンピュータ20と同等機能を備えているのが普通である)、ルータ、ネットワークパーソナルコンピュータ、ピア周辺デバイス、衛星、あるいは別のネットワークノードがある。
パーソナルコンピュータ20と同じように、PVA 220は、ネットワークインタフェース253とネットワーク251を介した1つまたは2つ以上のデバイスとの論理コネクションを使用するネットワーキング環境で動作する。ネットワーク251はモバイル通信用のワイヤレス(無線)ネットワークにすることも、製造サイト、サービスステーション、フリートステーション、または居住地での通信用のワイヤド(有線)ネットワークにすることも可能である。ワイヤレスであるか、ワイヤドであるかに関係なく、ネットワーク251は広域ネットワーク(wide area network - WAN)、ローカルエリアネットワーク(local area network - LAN)、または他のタイプの通信ネットワークにすることができる。このようなネットワーキング環境は、デジタルセルラ電話、GPS(global positioning system - 全地球測位システム)、緊急ロードサイドアシスタンスシステム(emergency roadside assistance system)、シッピングフリート通信、およびインターネット用として広く使用されている。ネットワーク251を利用すると、PVA 220は、追加ソース249のような、リモートソースと通信することができる。以上から理解されるように、図示のネットワークコネクションは例示であり、従来のモデムのように、通信リンクを確立する他の手段を使用することが可能である。
追加ソース249から周辺ノード256に関係する情報にアクセスすることは、USB実施形態に関して上述したのとまったく同じ方法で行われる。しかし、列挙および周辺ノード256との通信は、介在する周辺バス252を通して行われるので、処理ユニット221と周辺デバイス256の間に共用通信層を追加するだけで済むことになる。
新しい周辺ノードが周辺バス252に接続されたとき、オペレーティングシステム253は、USB実施形態に関して概要を上述したように、その新ノードを列挙する。しかし、新しい周辺ノードが周辺バス252に接続されたときは、バスインタフェース246は、最初に、その新周辺ノード用の周辺バスアドレスを設定しなければならない。USB実施形態では、新デバイスが接続されるUSBポートについては、アドレスが分かっている。これに対して、周辺バスがPVA上のポートに接続されているだけである。従って、新ノードの列挙を可能にするには、各周辺ノード用の介在バスアドレスがその前に設定されていなければならない。上述したように、このステップは、採用されている特定周辺バスに適用可能な周知標準に準拠して行われる。
例えば、新しいノードがIEEE 1394周辺バスに接続されるときは、バスは自身を完全にリセットし、周辺ノードのすべてが相互間で通信し合って、バスに接続された各周辺ノード用の新バスアドレスを判断している。バスアドレスは、ゼロからn-1までの桁数になっており、ここでnは周辺ノードの数である。そのあと、PVA 220は、周辺バス上の各周辺ノードを列挙し、その中には、周辺ノード256が含まれている。各周辺ノードは、USBにおけるデバイス記述子に類似したバス情報ブロックを収めている。バス情報ブロックの3番目と4番目のクワッドレット(quadlet)はグローバルにユニークなデバイスIDを収めている。
バス情報ブロックの外側のテキスト記述子は、URIをストリングとしてストアしている、ファームウェアメモリ258内の別のロケーションに置かれているリーフ(leaf)をポイントすることもできる。このテキスト記述子は、列挙時にも、列挙後にも取得することができる。ネットワークが周辺ノード256から取得されると、周辺ノードに関係するネットワークアドレスと情報にアクセスするときの残りの方法ステップは、上述したUSB実施形態で実装されているステップとほぼ類似している。
以上、本発明の好ましい実施形態とその変形実施形態に関して本発明を説明してきたが、当業者ならば理解されるように、請求項に記載されている本発明の範囲を逸脱しない限り、本発明は種々態様に変更することが可能である。従って、本発明の範囲は、いかなる態様においても、上述した説明によって限定されるものではなく、その全体は請求項の記載に従って判断されるものである。
20 ホストコンピュータ
22 メモリ
35 オペレーティングシステム
46 I/Oデバイスインタフェース

Claims (19)

  1. 周辺デバイスに関係する情報にアクセスする方法であって、
    (a) 周辺デバイスがホストデバイスに結合されると、前記ホストデバイスが、前記周辺デバイスにストアされているストリング記述子を得るための要求を、前記周辺デバイスに対して発行するステップと、
    (b) 前記周辺デバイスから前記ストリング記述子を受け取るステップと、
    (c) 前記ストリング記述子から、
    (i) ネットワークアドレスと、
    (ii) 前記ネットワークアドレスがストアされているロケーションを指すポインタと
    のうちの一方を判断するステップと、
    (d) 前記ストリング記述子から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取るステップと、
    (e) 前記ホストデバイスと、前記ネットワークアドレスで示されたソースとの間の通信を可能にするステップであって、前記通信は、前記周辺デバイスに関係しているステップと
    を備えたことを特徴とする方法。
  2. 周辺デバイスに関係する情報にアクセスする方法であって、
    (a) 周辺デバイスがホストデバイスに結合されると、前記ホストデバイスが、ストアされているネットワークアドレスを得るためのクラス要求を、前記周辺デバイスに対して発行するステップと、
    (b)前記周辺デバイスから前記クラス要求に対する応答を受け取るステップと、
    (c) 前記応答から、
    (i) 前記ネットワークアドレスと、
    (ii) 前記ネットワークアドレスがストアされているロケーションを指すポインタと
    のうちの一方を判断するステップと、
    (d) 前記応答から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取るステップと、
    (b) 前記ホストデバイスと、前記ネットワークアドレスで示されたソースとの間の通信を可能にするステップであって、前記通信は、前記周辺デバイスに関係しているステップと
    を備えたことを特徴とする方法。
  3. 周辺デバイスに関係する情報にアクセスする方法であって、
    (a) 周辺デバイスがホストデバイスに結合されると、ネットワークアドレスを得るためにベンダ固有デバイス要求を、前記周辺デバイスに対して発行するステップと、
    (b)前記周辺デバイスから前記ベンダ固有デバイス要求に対する応答を受け取るステップと、
    (c) 前記応答から、
    (i) 前記ネットワークアドレスと、
    (ii) 前記ネットワークアドレスがストアされているロケーションを指すポインタと
    のうちの一方を判断するステップと、
    (d) 前記応答から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取るステップと、
    (e) 前記ホストデバイスと、前記ネットワークアドレスで示されたソースとの間の通信を可能にするステップであって、前記通信は、前記周辺デバイスに関係しているステップと
    を備えたことを特徴とする方法。
  4. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、
    (a) 前記ソースと通信するために、前記ホストデバイスのユーザの許可を要求するステップと、
    (b) 前記許可を前記ユーザから受け取ると、前記ホストデバイスと前記ソースとの間の通信を開始して、前記周辺デバイスに関係する情報を前記ソースから自動的に取得するステップと
    を含むことを特徴とする方法。
  5. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するデータ、マシン命令、およびドキュメントのうちの少なくとも1つを、前記ネットワークアドレスで示された前記ソースから自動的に取り出すステップを含むことを特徴とする方法。
  6. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、前記ソースから取得され、前記周辺デバイスに関係するセットアッププログラムを自動的に実行するステップを含むことを特徴とする方法。
  7. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、前記ネットワークアドレスで示された前記ソースに用意されているWebページを自動的に表示するステップを含むことを特徴とする方法。
  8. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するデバイスドライバプログラムを前記ホストデバイスに自動的にインストールするステップを含むことを特徴とする方法。
  9. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、更新されたファームウェアを自動的にダウンロードして、前記周辺デバイスにインストールするステップを含むことを特徴とする方法。
  10. 請求項1乃至3のいずれかに記載の方法において、前記通信を可能にするステップは、前記周辺デバイスに関係するアプリケーションプログラムを自動的に実行するステップを含むことを特徴とする方法。
  11. 請求項1乃至3のいずれかに記載の方法において、前記周辺デバイスのためのプロパティページであって、前記ネットワークアドレスへのリンクを含んでいる前記プロパティページを表示して、ユーザが前記リンクを選択してブラウザ機能をアクチベートできるようにし、前記ソースにアクセス可能とすることを特徴とする方法。
  12. 請求項1乃至3のいずれかに記載の方法において、ホストデバイス上でブラウザ機能を自動的に実行し、前記ネットワークアドレスへ自動的にナビゲートするステップをさらに含むことを特徴とする方法。
  13. 請求項1乃至3のいずれかに記載の方法において、ユーザが前記ホストデバイス上でブラウザ機能を実行することを望んでいるかどうかを要求し、前記ユーザによって許可されているときだけ、前記ネットワークアドレスへ自動的にナビゲートするステップをさらに含むことを特徴とする方法。
  14. 請求項13に記載の方法において、前記ホストデバイス上でブラウザ機能を自動的に実行し、前記ユーザによって許可されていれば、前記ネットワークアドレスへ自動的にナビゲートするステップをさらに含むことを特徴とする方法。
  15. 請求項13に記載の方法において、前記ホストデバイス上でブラウザ機能を実行するさらに別の要求を、前記ユーザが選択的に禁止することを可能となし、それにより前記ネットワークアドレスへ自動的にナビゲートするステップが実行されることを禁止するステップをさらに含むことを特徴とする方法。
  16. 請求項1乃至3のいずれかに記載の方法を実行するマシン実行可能命令を格納していることを特徴とするマシン読取可能媒体。
  17. 周辺デバイスに関係する情報に自動的にアクセスするシステムであって、
    (a) ネットワークアドレスがストアされている周辺デバイスと、
    (b) (i) マシン命令がストアされているメモリと、
    (ii) ネットワーク上で通信するために使用されるネットワークインタフェースと、
    (iii) プロセッサと、
    (iv) 前記周辺デバイスに接続され、前記周辺デバイスと通信するように構成された周辺インタフェースと
    を備えたホストデバイスと、
    (c) 前記ネットワークアドレスに置かれた、前記周辺デバイスに関係する情報のソースであって、前記ネットワークインタフェースを介して、前記ホストデバイスによってアクセス可能である前記ソースとを備え、
    前記メモリにストアされた前記マシン命令は、
    (i) 前記周辺デバイスが前記ホストデバイスに結合されると、前記周辺デバイスにストアされているストリング記述子を得るための要求を、前記周辺デバイスに対して発行し、
    (ii) 前記周辺デバイスから前記ストリング記述子を受け取るステップと、
    (iii) 前記ストリング記述子から、前記ネットワークアドレスと、前記ネットワークアドレスがストアされているロケーションを指すポインタとのうちの一方を判断し、
    (iv) 前記ストリング記述子から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取り、
    (v)前記ホストデバイスと、前記ネットワークアドレスに置かれたソースとの間の通信を可能にして、前記ホストデバイスが前記ソースにアクセスできるようにする
    処理を、前記プロセッサに実行させることを特徴とするシステム。
  18. 周辺デバイスに関係する情報に自動的にアクセスするシステムであって、
    (a) ネットワークアドレスがストアされている周辺デバイスと、
    (b) (i) マシン命令がストアされているメモリと、
    (ii) ネットワーク上で通信するために使用されるネットワークインタフェースと、
    (iii) プロセッサと、
    (iv) 前記周辺デバイスに接続され、前記周辺デバイスと通信するように構成された周辺インタフェースと
    を備えたホストデバイスと、
    (c) 前記ネットワークアドレスに置かれた、前記周辺デバイスに関係する情報のソースであって、前記ネットワークインタフェースを介して、前記ホストデバイスによってアクセス可能である前記ソースとを備え、
    前記メモリにストアされた前記マシン命令は、
    (i) 前記周辺デバイスが前記ホストデバイスに結合されると、ストアされているネットワークアドレスを得るためのクラス要求を、前記周辺デバイスに対して発行し、
    (ii) 前記周辺デバイスから前記クラス要求に対する応答を受け取るステップと、
    (iii) 前記応答から、前記ネットワークアドレスと、前記ネットワークアドレスがストアされているロケーションを指すポインタとのうちの一方を判断し、
    (iv) 前記応答から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取り、
    (v)前記ホストデバイスと、前記ネットワークアドレスに置かれたソースとの間の通信を可能にして、前記ホストデバイスが前記ソースにアクセスできるようにする
    処理を、前記プロセッサに実行させることを特徴とするシステム。
  19. 周辺デバイスに関係する情報に自動的にアクセスするシステムであって、
    (a) ネットワークアドレスがストアされている周辺デバイスと、
    (b) (i) マシン命令がストアされているメモリと、
    (ii) ネットワーク上で通信するために使用されるネットワークインタフェースと、
    (iii) プロセッサと、
    (iv) 前記周辺デバイスに接続され、前記周辺デバイスと通信するように構成された周辺インタフェースと
    を備えたホストデバイスと、
    (c) 前記ネットワークアドレスに置かれた、前記周辺デバイスに関係する情報のソースであって、前記ネットワークインタフェースを介して、前記ホストデバイスによってアクセス可能である前記ソースとを備え、
    前記メモリにストアされた前記マシン命令は、
    (i) 前記周辺デバイスが前記ホストデバイスに結合されると、ネットワークアドレスを得るためにベンダ固有デバイス要求を、前記周辺デバイスに対して発行し、
    (ii) 前記周辺デバイスから前記ベンダ固有デバイス要求に対する応答を受け取るステップと、
    (iii) 前記応答から、前記ネットワークアドレスと、前記ネットワークアドレスがストアされているロケーションを指すポインタとのうちの一方を判断し、
    (iv) 前記応答から前記ポインタが存在すると判断された場合に、前記ポインタを使用して前記ロケーションから前記ネットワークアドレスを受け取り、
    (v)前記ホストデバイスと、前記ネットワークアドレスに置かれたソースとの間の通信を可能にして、前記ホストデバイスが前記ソースにアクセスできるようにする
    処理を、前記プロセッサに実行させることを特徴とするシステム。
JP2009149006A 2001-01-12 2009-06-23 エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム Expired - Fee Related JP4965605B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/760,327 US7165109B2 (en) 2001-01-12 2001-01-12 Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device
US09/760,327 2001-01-12

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002006721A Division JP4373639B2 (ja) 2001-01-12 2002-01-15 エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム

Publications (2)

Publication Number Publication Date
JP2009211729A JP2009211729A (ja) 2009-09-17
JP4965605B2 true JP4965605B2 (ja) 2012-07-04

Family

ID=25058766

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002006721A Expired - Fee Related JP4373639B2 (ja) 2001-01-12 2002-01-15 エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム
JP2009149006A Expired - Fee Related JP4965605B2 (ja) 2001-01-12 2009-06-23 エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002006721A Expired - Fee Related JP4373639B2 (ja) 2001-01-12 2002-01-15 エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム

Country Status (3)

Country Link
US (1) US7165109B2 (ja)
EP (1) EP1223722A3 (ja)
JP (2) JP4373639B2 (ja)

Families Citing this family (292)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
CN101303717B (zh) * 1995-02-13 2015-04-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US8364136B2 (en) 1999-02-01 2013-01-29 Steven M Hoffberg Mobile system, a method of operating mobile system and a non-transitory computer readable medium for a programmable control of a mobile system
US8620520B2 (en) * 2000-05-09 2013-12-31 Robert Bosch Gmbh Method for controlling devices, and a device in a communications network in a motor vehicle
US7734758B1 (en) * 2000-07-19 2010-06-08 Cisco Technology, Inc. USB encapsulation for network transmission
US7065564B2 (en) * 2000-12-22 2006-06-20 Canon Kabushiki Kaisha Network system, method and apparatus for processing information, and control program
US6839721B2 (en) * 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
JP4182464B2 (ja) * 2001-02-09 2008-11-19 富士フイルム株式会社 ビデオ会議システム
US20020126212A1 (en) * 2001-03-06 2002-09-12 Konica Corporation Electronic still camera
US7146260B2 (en) 2001-04-24 2006-12-05 Medius, Inc. Method and apparatus for dynamic configuration of multiprocessor system
US10298735B2 (en) 2001-04-24 2019-05-21 Northwater Intellectual Property Fund L.P. 2 Method and apparatus for dynamic configuration of a multiprocessor health data system
US20020194583A1 (en) * 2001-04-27 2002-12-19 Masayuki Kitagawa System and method for automatically transferring data to a host
JP2003036152A (ja) * 2001-05-17 2003-02-07 Matsushita Electric Ind Co Ltd 情報印刷システム
US20020174206A1 (en) * 2001-05-21 2002-11-21 Moyer Alan L. Web-based file manipulating system
US7100168B1 (en) * 2001-06-22 2006-08-29 Xilinx, Inc. Structure and method for controlling electronic devices
US7159018B2 (en) * 2001-08-02 2007-01-02 Dell Products L.P. System and method for installing software onto a built-to-order computer system using an identification device
GB0120686D0 (en) * 2001-08-24 2001-10-17 Intuwave Ltd Data packet router for a wireless communication device
US7043587B2 (en) * 2001-09-20 2006-05-09 Lenovo (Singapore) Pte. Ltd. System and method for connecting a universal serial bus device to a host computer system
EP1298506A1 (de) * 2001-09-27 2003-04-02 Siemens Aktiengesellschaft Dynamischer Zugriff auf Automatisierungsressourcen
TW514786B (en) * 2001-09-28 2002-12-21 Su Fang Yu Processing method and computer system for driver in intelligent peripherals
JP3984895B2 (ja) 2001-10-03 2007-10-03 キヤノン株式会社 情報処理装置およびサーバ装置およびドライバ更新方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
JP2003131959A (ja) * 2001-10-26 2003-05-09 Canon Inc 情報処理装置、ネットワークシステム、デバイス管理方法、記憶媒体、及びプログラム
US8274559B2 (en) * 2001-11-09 2012-09-25 Karl Storz Imaging, Inc. Replaceable hardware component of a camera control unit for video systems
US8199188B2 (en) * 2001-11-09 2012-06-12 Karl Storz Imaging, Inc. Video imaging system with a camera control unit
US8089509B2 (en) * 2001-11-09 2012-01-03 Karl Storz Imaging, Inc. Programmable camera control unit with updatable program
US7212227B2 (en) * 2001-11-09 2007-05-01 Karl Storz Imaging, Inc. Programmable and reconfigurable camera control unit for video systems
US7747655B2 (en) 2001-11-19 2010-06-29 Ricoh Co. Ltd. Printable representations for time-based media
US7861169B2 (en) 2001-11-19 2010-12-28 Ricoh Co. Ltd. Multimedia print driver dialog interfaces
JP2003202986A (ja) * 2002-01-07 2003-07-18 Fujitsu Ltd Webページを介したデバイス・ドライバのインストール
US20040194081A1 (en) * 2002-03-23 2004-09-30 Iyad Qumei Update system for facilitating firmware/software update in a mobile handset
US20070169073A1 (en) * 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
JP2004038686A (ja) * 2002-07-04 2004-02-05 Seiko Epson Corp デバイス制御ソフトウェアの格納場所を通知するデバイス
US7617502B2 (en) * 2002-11-06 2009-11-10 Scientific-Atlanta, Llc Managing peripheral device drivers
US8495180B2 (en) * 2002-12-11 2013-07-23 Broadcom Corporation Server architecture supporting a personal media exchange network
US7584359B2 (en) 2002-12-11 2009-09-01 Broadcom Corporation Secure media peripheral association in a media exchange network
US9357256B2 (en) 2002-12-11 2016-05-31 Broadcom Corporation Third party media channel access in a media exchange network
US8028093B2 (en) 2002-12-11 2011-09-27 Broadcom Corporation Media processing system supporting adaptive digital media parameters based on end-user viewing capabilities
US7450501B2 (en) * 2002-12-11 2008-11-11 Broadcom Corporation Media processing system based on satellite set top box platform with telephony downstream and upstream data paths
US7475243B2 (en) 2002-12-11 2009-01-06 Broadcom Corporation Preventing a non-head end based service provider from sending media to a media processing system
US20040123305A1 (en) * 2002-12-14 2004-06-24 Samsung Electronics Co., Ltd. Method, apparatus, and computer readable medium for installing a device driver
US8516504B1 (en) * 2003-01-28 2013-08-20 Altera Corporation Method for adding device information by extending an application programming interface
US7376627B2 (en) * 2003-01-31 2008-05-20 Lexmark International, Inc. Method of licensing functionality after initial transaction
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US7680944B1 (en) * 2003-02-28 2010-03-16 Comtrol Corporation Rapid transport service in a network to peripheral device servers
KR100524968B1 (ko) * 2003-06-14 2005-10-31 삼성전자주식회사 디스크 기록시의 디스크 정보 서비스 장치 및 방법
US8046753B1 (en) 2003-06-18 2011-10-25 Hewlett-Packard Development Company, L.P. Mobile handset with symbian OS and update agent
US7861211B2 (en) * 2003-07-29 2010-12-28 Hewlett-Packard Development Company, L.P. Mobile handset with update agent implemented in hardware
KR100584558B1 (ko) * 2003-08-16 2006-05-30 삼성전자주식회사 드라이버 자동 설치 방법 및 장치와 컴퓨터 프로그램을저장하는 컴퓨터로 읽을 수 있는 기록 매체
JP2005108230A (ja) 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US7508535B2 (en) * 2003-09-25 2009-03-24 Ricoh Co., Ltd. Stand alone multimedia printer with user interface for allocating processing
US7511846B2 (en) * 2003-09-25 2009-03-31 Ricoh Co., Ltd. Printer having embedded functionality for printing time-based media
US8077341B2 (en) * 2003-09-25 2011-12-13 Ricoh Co., Ltd. Printer with audio or video receiver, recorder, and real-time content-based processing logic
JP4007452B2 (ja) * 2003-10-10 2007-11-14 株式会社Access ブラウザを利用して機器情報を表示するシステム、およびプログラム
US8151280B2 (en) 2003-10-27 2012-04-03 Microsoft Corporation Simple and dynamic configuration of network devices
KR20060097130A (ko) * 2003-11-18 2006-09-13 코닌클리케 필립스 일렉트로닉스 엔.브이. 판독-전용 저장 매체를 가상적으로 재기입할 수 있게렌더링하기 위한 방법 및 시스템
US8112764B2 (en) 2003-11-20 2012-02-07 Microsoft Corporation Devices as services in a decentralized operating system
CN100336006C (zh) * 2003-12-01 2007-09-05 国际商业机器公司 用于连接外设到计算机系统的方法和系统
JP2005165514A (ja) * 2003-12-01 2005-06-23 Sony Corp アプリケーション表示装置
US8683347B2 (en) * 2003-12-18 2014-03-25 Blackberry Limited Computer peripheral product and method of branding utility software associated with same
US20050137833A1 (en) * 2003-12-18 2005-06-23 Rajasekhar Sistla Automatic sensor integration
US7783981B2 (en) * 2003-12-18 2010-08-24 Research In Motion Limited Computer peripheral product and method of branding utility software associated with same
US7627679B1 (en) * 2003-12-30 2009-12-01 At&T Intellectual Property Ii, L.P. Methods and systems for provisioning network services
US7164907B2 (en) * 2004-01-13 2007-01-16 Qualcomm Inc. Automated over the air plug-in device recognition and software driver download
US8402269B2 (en) * 2004-02-24 2013-03-19 Softcamp Co., Ltd. System and method for controlling exit of saved data from security zone
KR100596135B1 (ko) * 2004-02-24 2006-07-03 소프트캠프(주) 가상 디스크를 이용한 응용 프로그램 별 접근통제시스템과 그 통제방법
JP2005267089A (ja) * 2004-03-17 2005-09-29 Fuji Xerox Co Ltd ドライバ管理方法および装置並びにプログラム
US8274666B2 (en) 2004-03-30 2012-09-25 Ricoh Co., Ltd. Projector/printer for displaying or printing of documents
US7603615B2 (en) * 2004-03-30 2009-10-13 Ricoh Co., Ltd. Multimedia projector-printer
US7389295B2 (en) * 2004-06-25 2008-06-17 Searete Llc Using federated mote-associated logs
US8346846B2 (en) * 2004-05-12 2013-01-01 The Invention Science Fund I, Llc Transmission of aggregated mote-associated log data
US8335814B2 (en) * 2004-03-31 2012-12-18 The Invention Science Fund I, Llc Transmission of aggregated mote-associated index data
US7599696B2 (en) * 2004-06-25 2009-10-06 Searete, Llc Frequency reuse techniques in mote-appropriate networks
US7929914B2 (en) * 2004-03-31 2011-04-19 The Invention Science Fund I, Llc Mote networks using directional antenna techniques
US20050255841A1 (en) * 2004-05-12 2005-11-17 Searete Llc Transmission of mote-associated log data
US7366544B2 (en) * 2004-03-31 2008-04-29 Searete, Llc Mote networks having directional antennas
US20060004888A1 (en) * 2004-05-21 2006-01-05 Searete Llc, A Limited Liability Corporation Of The State Delaware Using mote-associated logs
US20060079285A1 (en) * 2004-03-31 2006-04-13 Jung Edward K Y Transmission of mote-associated index data
US20050267960A1 (en) * 2004-05-12 2005-12-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Mote-associated log creation
US7457834B2 (en) * 2004-07-30 2008-11-25 Searete, Llc Aggregation and retrieval of network sensor data
US9062992B2 (en) * 2004-07-27 2015-06-23 TriPlay Inc. Using mote-associated indexes
US7317898B2 (en) * 2004-03-31 2008-01-08 Searete Llc Mote networks using directional antenna techniques
US7536388B2 (en) * 2004-03-31 2009-05-19 Searete, Llc Data storage for distributed sensor networks
US20050256667A1 (en) * 2004-05-12 2005-11-17 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Federating mote-associated log data
US7725080B2 (en) * 2004-03-31 2010-05-25 The Invention Science Fund I, Llc Mote networks having directional antennas
WO2005099034A2 (en) * 2004-03-31 2005-10-20 Searete Llc Transmission of aggregated mote-associated log data
US8161097B2 (en) * 2004-03-31 2012-04-17 The Invention Science Fund I, Llc Aggregating mote-associated index data
US9261383B2 (en) * 2004-07-30 2016-02-16 Triplay, Inc. Discovery of occurrence-data
US8200744B2 (en) * 2004-03-31 2012-06-12 The Invention Science Fund I, Llc Mote-associated index creation
US20050227686A1 (en) * 2004-03-31 2005-10-13 Jung Edward K Y Federating mote-associated index data
US20060064402A1 (en) * 2004-07-27 2006-03-23 Jung Edward K Y Using federated mote-associated indexes
US20060062252A1 (en) * 2004-06-30 2006-03-23 Jung Edward K Mote appropriate network power reduction techniques
WO2005099289A2 (en) * 2004-03-31 2005-10-20 Searete Llc Mote-associated index creation
US8275824B2 (en) * 2004-03-31 2012-09-25 The Invention Science Fund I, Llc Occurrence data detection and storage for mote networks
US7941188B2 (en) 2004-03-31 2011-05-10 The Invention Science Fund I, Llc Occurrence data detection and storage for generalized sensor networks
US20050265388A1 (en) * 2004-05-12 2005-12-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Aggregating mote-associated log data
US7904895B1 (en) * 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
JP4040596B2 (ja) * 2004-04-27 2008-01-30 キヤノン株式会社 画像形成装置、そのセットアップ方法、及びプログラム
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
JP2005338940A (ja) 2004-05-24 2005-12-08 Canon Inc インストール方法、情報処理装置、及びデバイスドライバ
US7293117B2 (en) * 2004-06-10 2007-11-06 Microsoft Corporation Self-installing peripheral device with memory wherein in response to user request for additional storage peripheral device being configured to remove installation software stored on memory
US20060026287A1 (en) * 2004-07-30 2006-02-02 Lockheed Martin Corporation Embedded processes as a network service
US7536486B2 (en) * 2004-07-30 2009-05-19 Microsoft Corporation Automatic protocol determination for portable devices supporting multiple protocols
US20090024757A1 (en) * 2004-07-30 2009-01-22 Proctor David W Automatic Protocol Determination For Portable Devices Supporting Multiple Protocols
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
KR20060053273A (ko) * 2004-10-13 2006-05-19 조배수 클라이언트의 펌웨어 업데이트 시스템 및 방법
AU2005222507B2 (en) * 2004-10-15 2010-10-28 Microsoft Corporation Portable computing environment
US7493487B2 (en) 2004-10-15 2009-02-17 Microsoft Corporation Portable computing environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US7337650B1 (en) 2004-11-09 2008-03-04 Medius Inc. System and method for aligning sensors on a vehicle
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8464348B2 (en) 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
JP4978193B2 (ja) * 2004-11-30 2012-07-18 日本電気株式会社 情報処理装置、デバイスアクセス制御方法、及びデバイスアクセス制御プログラム
TWI275982B (en) * 2005-02-04 2007-03-11 Hon Hai Prec Ind Co Ltd Keyboard circuit
US20060195832A1 (en) * 2005-02-25 2006-08-31 Microsoft Corporation Modules for composing computer systems
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US7921420B2 (en) * 2005-04-29 2011-04-05 Sharp Laboratories Of America, Inc. Systems and methods for updating imaging device drivers on one or more computer systems
US7676584B2 (en) * 2005-05-17 2010-03-09 Kid Group Llc Method and apparatus for providing games and content
US8032705B2 (en) * 2005-05-17 2011-10-04 Kid Group Llc Method and apparatus for providing games and content
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
TWM279868U (en) * 2005-07-08 2005-11-01 Phison Electronics Corp Cholesterol liquid crystal device capable of executing automatically
JP2007052727A (ja) * 2005-08-19 2007-03-01 Toshiba Corp 情報処理装置およびアクセス方法
JP2007052728A (ja) * 2005-08-19 2007-03-01 Toshiba Corp 情報処理装置およびアクセス方法
CN106054626B (zh) * 2005-08-22 2019-08-20 传恩国际股份有限公司 便于用户定制的建筑物自动化系统
CA2620064C (en) * 2005-08-22 2015-10-13 Trane International Inc. Dynamically extensible and automatically configurable building automation system and architecture
US7904186B2 (en) * 2005-08-22 2011-03-08 Trane International, Inc. Building automation system facilitating user customization
US8024054B2 (en) * 2005-08-22 2011-09-20 Trane International, Inc. Building automation system facilitating user customization
US8055386B2 (en) * 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US8099178B2 (en) * 2005-08-22 2012-01-17 Trane International Inc. Building automation system facilitating user customization
US8050801B2 (en) * 2005-08-22 2011-11-01 Trane International Inc. Dynamically extensible and automatically configurable building automation system and architecture
US7870090B2 (en) * 2005-08-22 2011-01-11 Trane International Inc. Building automation system date management
US7917232B2 (en) * 2005-08-22 2011-03-29 Trane International Inc. Building automation system data management
US8055387B2 (en) * 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
WO2007024622A2 (en) * 2005-08-22 2007-03-01 American Standard International, Inc. Building automation system data management
US20070130379A1 (en) * 2005-11-09 2007-06-07 Ping Ma Method for data processing based on an operation route in peripheral equipment
US20080313370A1 (en) * 2005-11-24 2008-12-18 Hong Suk Kang Guarding Method For Input Data By Usb Keyboard and Guarding System
FR2896321B1 (fr) * 2006-01-16 2008-05-02 Emmanuel Thibaudeau Accessoire informatique et application
US20070207800A1 (en) * 2006-02-17 2007-09-06 Daley Robert C Diagnostics And Monitoring Services In A Mobile Network For A Mobile Device
US20070245333A1 (en) * 2006-03-27 2007-10-18 Ferlitsch Andrew R Methods and Systems for Managing Firmware
US20070253342A1 (en) * 2006-04-28 2007-11-01 Caterpillar Inc. System for automatically configuring a communication interface module
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
KR100734203B1 (ko) * 2006-06-30 2007-07-02 주식회사 스타칩 모바일폰에 연결되는 통합 인터페이싱 정보를 내장한통신환경 설정 장치 및 그 설정방법
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US20080046567A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation Automatic detection and integration of network workloads
CN101507248B (zh) * 2006-09-07 2012-04-11 诺基亚公司 管理涉及安全模块应用的信息
JP2008123388A (ja) * 2006-11-15 2008-05-29 Hitachi Ltd 周辺機器の割当て方法、情報処理システム、情報処理装置および管理装置
JP4805116B2 (ja) * 2006-12-11 2011-11-02 株式会社日立製作所 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
KR100800589B1 (ko) * 2006-12-20 2008-02-04 엘지전자 주식회사 정보 처리 장치 및 그 운용방법
US20080162772A1 (en) * 2007-01-03 2008-07-03 Yeh Chun I Portable memory device with auto-play audio
EP3211553B1 (en) * 2007-01-31 2019-03-06 Nokia Technologies Oy Managing applications related to secure modules
US8185891B2 (en) * 2007-05-14 2012-05-22 Red Hat, Inc. Methods and systems for provisioning software
EP2156348B1 (en) 2007-05-30 2018-08-01 Ascensia Diabetes Care Holdings AG System and method for managing health data
US8561058B2 (en) * 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) * 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
WO2009047438A1 (fr) * 2007-09-18 2009-04-16 Thomson Licensing Hebergement d'applications semi-permanent
US20090125645A1 (en) * 2007-11-12 2009-05-14 Gemalto Inc System and method for supporting multiple tokens having a smart card to control parameters of a flash memory device
US8898477B2 (en) * 2007-11-12 2014-11-25 Gemalto Inc. System and method for secure firmware update of a secure token having a flash memory controller and a smart card
US8307131B2 (en) * 2007-11-12 2012-11-06 Gemalto Sa System and method for drive resizing and partition size exchange between a flash memory controller and a smart card
EP2063332A1 (de) 2007-11-21 2009-05-27 Pepperl + Fuchs Gmbh Sensor für die Automatisierungstechnik und Verfahren zum Übermitteln von Konfigurationsdaten von einem externen Rechner an einen Sensor
EP2063357A1 (de) 2007-11-21 2009-05-27 Pepperl + Fuchs Gmbh Transportabler Datenträger und Verfahren zum Übertragen von Konfigurationsdaten von einem externen Rechner auf einen Sensor
EP2063331A1 (de) * 2007-11-21 2009-05-27 Pepperl + Fuchs Gmbh Sensor für die Automatisierungstechnik und Verfahren zum Konfigurieren eines Sensors
US8276133B1 (en) 2007-12-11 2012-09-25 Nvidia Corporation System, method, and computer program product for determining a plurality of application settings utilizing a mathematical function
US8296781B1 (en) 2007-12-11 2012-10-23 Nvidia Corporation System, method, and computer program product for determining application parameters based on hardware specifications
US8280864B1 (en) * 2007-12-17 2012-10-02 Nvidia Corporation System, method, and computer program product for retrieving presentation settings from a database
JP2009290332A (ja) * 2008-05-27 2009-12-10 Fujitsu Ltd 接続確認機能を有する伝送装置
US8713177B2 (en) * 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US9100297B2 (en) * 2008-08-20 2015-08-04 Red Hat, Inc. Registering new machines in a software provisioning environment
US8930512B2 (en) 2008-08-21 2015-01-06 Red Hat, Inc. Providing remote software provisioning to machines
US9477570B2 (en) * 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8838827B2 (en) * 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US8793683B2 (en) * 2008-08-28 2014-07-29 Red Hat, Inc. Importing software distributions in a software provisioning environment
US20100058327A1 (en) * 2008-08-28 2010-03-04 Dehaan Michael Paul Methods and systems for providing customized actions related to software provisioning
US9952845B2 (en) * 2008-08-29 2018-04-24 Red Hat, Inc. Provisioning machines having virtual storage resources
US8244836B2 (en) * 2008-08-29 2012-08-14 Red Hat, Inc. Methods and systems for assigning provisioning servers in a software provisioning environment
US9021470B2 (en) * 2008-08-29 2015-04-28 Red Hat, Inc. Software provisioning in multiple network configuration environment
US8103776B2 (en) * 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
US8527578B2 (en) * 2008-08-29 2013-09-03 Red Hat, Inc. Methods and systems for centrally managing multiple provisioning servers
US9111118B2 (en) * 2008-08-29 2015-08-18 Red Hat, Inc. Managing access in a software provisioning environment
US9164749B2 (en) * 2008-08-29 2015-10-20 Red Hat, Inc. Differential software provisioning on virtual machines having different configurations
US8612968B2 (en) * 2008-09-26 2013-12-17 Red Hat, Inc. Methods and systems for managing network connections associated with provisioning objects in a software provisioning environment
US8326972B2 (en) * 2008-09-26 2012-12-04 Red Hat, Inc. Methods and systems for managing network connections in a software provisioning environment
KR101310218B1 (ko) * 2008-10-28 2013-09-24 삼성전자주식회사 화상형성장치의 파일 통합 설치 방법 및 파일 통합 설치가 가능한 화상형성장치
US8898305B2 (en) * 2008-11-25 2014-11-25 Red Hat, Inc. Providing power management services in a software provisioning environment
US9124497B2 (en) * 2008-11-26 2015-09-01 Red Hat, Inc. Supporting multiple name servers in a software provisioning environment
US8782204B2 (en) * 2008-11-28 2014-07-15 Red Hat, Inc. Monitoring hardware resources in a software provisioning environment
US8775578B2 (en) * 2008-11-28 2014-07-08 Red Hat, Inc. Providing hardware updates in a software environment
US8832256B2 (en) * 2008-11-28 2014-09-09 Red Hat, Inc. Providing a rescue Environment in a software provisioning environment
TWI395103B (zh) * 2008-12-31 2013-05-01 C Media Electronics Inc 自動執行訊號處理方法與具有該自動執行功能之裝置
US8180824B2 (en) 2009-02-23 2012-05-15 Trane International, Inc. Log collection data harvester for use in a building automation system
US8402123B2 (en) * 2009-02-24 2013-03-19 Red Hat, Inc. Systems and methods for inventorying un-provisioned systems in a software provisioning environment
US9727320B2 (en) * 2009-02-25 2017-08-08 Red Hat, Inc. Configuration of provisioning servers in virtualized systems
US20100217944A1 (en) * 2009-02-26 2010-08-26 Dehaan Michael Paul Systems and methods for managing configurations of storage devices in a software provisioning environment
US8413259B2 (en) * 2009-02-26 2013-04-02 Red Hat, Inc. Methods and systems for secure gated file deployment associated with provisioning
US8892700B2 (en) * 2009-02-26 2014-11-18 Red Hat, Inc. Collecting and altering firmware configurations of target machines in a software provisioning environment
US9558195B2 (en) 2009-02-27 2017-01-31 Red Hat, Inc. Depopulation of user data from network
US9940208B2 (en) * 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US9411570B2 (en) * 2009-02-27 2016-08-09 Red Hat, Inc. Integrating software provisioning and configuration management
US8135989B2 (en) 2009-02-27 2012-03-13 Red Hat, Inc. Systems and methods for interrogating diagnostic target using remotely loaded image
US8640122B2 (en) * 2009-02-27 2014-01-28 Red Hat, Inc. Systems and methods for abstracting software content management in a software provisioning environment
US8990368B2 (en) 2009-02-27 2015-03-24 Red Hat, Inc. Discovery of network software relationships
US8572587B2 (en) * 2009-02-27 2013-10-29 Red Hat, Inc. Systems and methods for providing a library of virtual images in a software provisioning environment
US8667096B2 (en) * 2009-02-27 2014-03-04 Red Hat, Inc. Automatically generating system restoration order for network recovery
US8417926B2 (en) * 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US9358924B1 (en) 2009-05-08 2016-06-07 Eagle Harbor Holdings, Llc System and method for modeling advanced automotive safety systems
US8417490B1 (en) 2009-05-11 2013-04-09 Eagle Harbor Holdings, Llc System and method for the configuration of an automotive vehicle with modeled sensors
US9250672B2 (en) * 2009-05-27 2016-02-02 Red Hat, Inc. Cloning target machines in a software provisioning environment
US9134987B2 (en) 2009-05-29 2015-09-15 Red Hat, Inc. Retiring target machines by a provisioning server
JP5354734B2 (ja) * 2009-06-03 2013-11-27 Kddi株式会社 計測信号を音声信号に変換して送受信するセンサ装置及び端末を有するシステム
CN101655823B (zh) * 2009-06-12 2012-12-19 中兴通讯股份有限公司 免安装数据卡驱动的实现方法、操作方法及系统
US9047155B2 (en) * 2009-06-30 2015-06-02 Red Hat, Inc. Message-based installation management using message bus
US8825819B2 (en) * 2009-11-30 2014-09-02 Red Hat, Inc. Mounting specified storage resources from storage area network in machine provisioning platform
US10133485B2 (en) 2009-11-30 2018-11-20 Red Hat, Inc. Integrating storage resources from storage area network in machine provisioning platform
US9258201B2 (en) * 2010-02-23 2016-02-09 Trane International Inc. Active device management for use in a building automation system
US8219660B2 (en) * 2010-02-26 2012-07-10 Trane International Inc. Simultaneous connectivity and management across multiple building automation system networks
US8793022B2 (en) * 2010-02-26 2014-07-29 Trane International, Inc. Automated air source and VAV box association
US9141564B1 (en) * 2010-08-04 2015-09-22 Open Invention Network, Llc Interconnection of peripheral devices on different electronic devices
JP5488341B2 (ja) * 2010-08-26 2014-05-14 ブラザー工業株式会社 デバイス、ヘルプサーバ、及びプログラム
EP2652936A1 (en) * 2010-12-17 2013-10-23 Sony Ericsson Mobile Communications AB Method for interface configuration of an electronic device detection
KR101885133B1 (ko) * 2011-02-01 2018-08-03 삼성전자주식회사 디지털 디바이스에서 어플리케이션 자동 인스톨 기능을 제공하기 위한 장치 및 방법
US8799618B2 (en) 2011-04-12 2014-08-05 Empire Technology Development Llc Service associated with persistent storage
WO2013002547A2 (ko) * 2011-06-30 2013-01-03 주식회사 케이티 외부 디바이스와 도킹되는 휴대 단말 및 그 제어 방법
KR101554599B1 (ko) * 2011-06-30 2015-09-21 주식회사 케이티 외부 디바이스와 도킹 연결되는 휴대 단말 및 어플리케이션 실행 방법
US8886392B1 (en) 2011-12-21 2014-11-11 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with managing vehicle maintenance activities
KR101474927B1 (ko) 2011-12-22 2014-12-31 주식회사 케이티 외부 디스플레이 기기로의 영상 송출 방법 및 그 단말
KR101546407B1 (ko) 2011-12-23 2015-08-24 주식회사 케이티 어플리케이션 실행 제어 방법 및 장치
KR101522399B1 (ko) 2011-12-23 2015-05-22 주식회사 케이티 휴대 단말에서 외부 디스플레이 기기로의 화면 표출 방법 및 그 휴대 단말
KR101522397B1 (ko) 2011-12-26 2015-05-22 주식회사 케이티 복수의 외부 장치와 연결될 수 있는 휴대 단말 및 그 제어 방법
KR101504655B1 (ko) 2011-12-26 2015-03-23 주식회사 케이티 어플리케이션 실행 제어 방법 및 장치
US9354748B2 (en) 2012-02-13 2016-05-31 Microsoft Technology Licensing, Llc Optical stylus interaction
US9134807B2 (en) 2012-03-02 2015-09-15 Microsoft Technology Licensing, Llc Pressure sensitive key normalization
USRE48963E1 (en) 2012-03-02 2022-03-08 Microsoft Technology Licensing, Llc Connection device for computing devices
US9075566B2 (en) 2012-03-02 2015-07-07 Microsoft Technoogy Licensing, LLC Flexible hinge spine
US8873227B2 (en) 2012-03-02 2014-10-28 Microsoft Corporation Flexible hinge support layer
US9360893B2 (en) 2012-03-02 2016-06-07 Microsoft Technology Licensing, Llc Input device writing surface
US8935774B2 (en) 2012-03-02 2015-01-13 Microsoft Corporation Accessory device authentication
US9064654B2 (en) 2012-03-02 2015-06-23 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9426905B2 (en) 2012-03-02 2016-08-23 Microsoft Technology Licensing, Llc Connection device for computing devices
US9870066B2 (en) 2012-03-02 2018-01-16 Microsoft Technology Licensing, Llc Method of manufacturing an input device
JP5846016B2 (ja) * 2012-03-30 2016-01-20 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
TWI451272B (zh) 2012-05-02 2014-09-01 Arcadyan Technology Corp 整合週邊裝置之通用型驅動方法與系統
US20130300590A1 (en) 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
US10031556B2 (en) 2012-06-08 2018-07-24 Microsoft Technology Licensing, Llc User experience adaptation
US9019615B2 (en) 2012-06-12 2015-04-28 Microsoft Technology Licensing, Llc Wide field-of-view virtual image projector
US9684382B2 (en) 2012-06-13 2017-06-20 Microsoft Technology Licensing, Llc Input device configuration having capacitive and pressure sensors
US9459160B2 (en) 2012-06-13 2016-10-04 Microsoft Technology Licensing, Llc Input device sensor configuration
US9275377B2 (en) 2012-06-15 2016-03-01 Nvidia Corporation System, method, and computer program product for determining a monotonic set of presets
US10509658B2 (en) 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9201670B2 (en) 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria
US10668386B2 (en) 2012-07-06 2020-06-02 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9286247B2 (en) 2012-07-06 2016-03-15 Nvidia Corporation System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality
US9250931B2 (en) 2012-07-06 2016-02-02 Nvidia Corporation System, method, and computer program product for calculating settings for a device, utilizing one or more constraints
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
US8964379B2 (en) 2012-08-20 2015-02-24 Microsoft Corporation Switchable magnetic lock
US8654030B1 (en) 2012-10-16 2014-02-18 Microsoft Corporation Antenna placement
WO2014059624A1 (en) 2012-10-17 2014-04-24 Microsoft Corporation Metal alloy injection molding protrusions
US8786767B2 (en) 2012-11-02 2014-07-22 Microsoft Corporation Rapid synchronized lighting and shuttering
US9176538B2 (en) 2013-02-05 2015-11-03 Microsoft Technology Licensing, Llc Input device configurations
US10578499B2 (en) 2013-02-17 2020-03-03 Microsoft Technology Licensing, Llc Piezo-actuated virtual buttons for touch surfaces
US9304549B2 (en) 2013-03-28 2016-04-05 Microsoft Technology Licensing, Llc Hinge mechanism for rotatable component attachment
US9442741B2 (en) * 2013-05-15 2016-09-13 Tencent Technology (Shenzhen) Company Limited Method, terminal, server, and system for data processing
US20150113423A1 (en) * 2013-10-18 2015-04-23 Yokogawa Electric Corporation System and method to configure a field device
US9448631B2 (en) 2013-12-31 2016-09-20 Microsoft Technology Licensing, Llc Input device haptics and pressure sensing
US9317072B2 (en) 2014-01-28 2016-04-19 Microsoft Technology Licensing, Llc Hinge mechanism with preset positions
US9759854B2 (en) 2014-02-17 2017-09-12 Microsoft Technology Licensing, Llc Input device outer layer and backlighting
US10120420B2 (en) 2014-03-21 2018-11-06 Microsoft Technology Licensing, Llc Lockable display and techniques enabling use of lockable displays
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
JP6366428B2 (ja) * 2014-08-29 2018-08-01 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
US9424048B2 (en) 2014-09-15 2016-08-23 Microsoft Technology Licensing, Llc Inductive peripheral retention device
US9447620B2 (en) 2014-09-30 2016-09-20 Microsoft Technology Licensing, Llc Hinge mechanism with multiple preset positions
JP6638189B2 (ja) 2015-01-07 2020-01-29 富士通株式会社 連携方法、情報処理端末、及びプログラム
JP2016177445A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラムおよび情報処理システム
US10222889B2 (en) 2015-06-03 2019-03-05 Microsoft Technology Licensing, Llc Force inputs and cursor control
US10416799B2 (en) 2015-06-03 2019-09-17 Microsoft Technology Licensing, Llc Force sensing and inadvertent input control of an input device
US9752361B2 (en) 2015-06-18 2017-09-05 Microsoft Technology Licensing, Llc Multistage hinge
US9864415B2 (en) 2015-06-30 2018-01-09 Microsoft Technology Licensing, Llc Multistage friction hinge
US10061385B2 (en) 2016-01-22 2018-08-28 Microsoft Technology Licensing, Llc Haptic feedback for a touch input device
US10344797B2 (en) 2016-04-05 2019-07-09 Microsoft Technology Licensing, Llc Hinge with multiple preset positions
JP2017199246A (ja) * 2016-04-28 2017-11-02 京セラドキュメントソリューションズ株式会社 電子機器
US11223537B1 (en) 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
US10269235B2 (en) 2016-08-26 2019-04-23 Trane International Inc. System and method to assist building automation system end user based on alarm parameters
US10037057B2 (en) 2016-09-22 2018-07-31 Microsoft Technology Licensing, Llc Friction hinge
JP6914749B2 (ja) * 2017-06-29 2021-08-04 キヤノン株式会社 サーバ装置、情報処理装置、および制御方法
US11205021B2 (en) * 2019-01-21 2021-12-21 Apple Inc. Securing accessory interface
US11218360B2 (en) * 2019-12-09 2022-01-04 Quest Automated Services, LLC Automation system with edge computing
US11599364B2 (en) * 2021-02-23 2023-03-07 Dell Products L.P. System and method for provide persistent companion software in an information handling system

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449182A (en) 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5428748A (en) * 1992-09-24 1995-06-27 National Semiconductor Corporation Method and apparatus for automatically configuring a computer peripheral
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
US6026366A (en) * 1993-09-22 2000-02-15 Motorola, Inc. Method for providing software to a remote computer
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
JPH09244985A (ja) * 1996-03-11 1997-09-19 Fuji Xerox Co Ltd コンピュータ装置
US5802304A (en) 1996-04-18 1998-09-01 Microsoft Corporation Automatic dialer responsive to network programming interface access
US5905736A (en) * 1996-04-22 1999-05-18 At&T Corp Method for the billing of transactions over the internet
US6148346A (en) * 1996-06-20 2000-11-14 Peerless Systems Imaging Products, Inc. Dynamic device driver
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
US6115471A (en) * 1996-11-28 2000-09-05 Fujitsu Limited Member-exclusive service system and method through internet
US6023585A (en) 1997-05-02 2000-02-08 Webtv Networks, Inc. Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices
US6012103A (en) * 1997-07-02 2000-01-04 Cypress Semiconductor Corp. Bus interface system and method
US6421069B1 (en) * 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
US6009480A (en) * 1997-09-12 1999-12-28 Telxon Corporation Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
JP3906535B2 (ja) * 1997-11-07 2007-04-18 ソニー株式会社 ダウンロードシステム、及び記録媒体
US6219698B1 (en) * 1997-12-19 2001-04-17 Compaq Computer Corporation Configuring client software using remote notification
US6353866B1 (en) * 1998-01-07 2002-03-05 National Semiconductor Corporation Apparatus and method for initializing a universal serial bus device
US6122676A (en) * 1998-01-07 2000-09-19 National Semiconductor Corporation Apparatus and method for transmitting and receiving data into and out of a universal serial bus device
US6205501B1 (en) * 1998-01-07 2001-03-20 National Semiconductor Corp. Apparatus and method for handling universal serial bus control transfers
US6167567A (en) * 1998-05-05 2000-12-26 3Com Corporation Technique for automatically updating software stored on a client computer in a networked client-server environment
JP2000029813A (ja) * 1998-07-14 2000-01-28 Hitachi Ltd サーバ選択システム
US6694354B1 (en) * 1998-11-30 2004-02-17 Telefonaktiebolaget Lm Ericsson (Publ) Host computer access to peripheral device drivers
US6389495B1 (en) * 1999-01-16 2002-05-14 Cypress Semiconductor Corp. Dedicated circuit and method for enumerating and operating a peripheral device on a universal serial bus
US6424424B1 (en) * 1999-01-19 2002-07-23 Hewlett-Packard Company Method and apparatus for automatic installation of shared printers over a network
US6917923B1 (en) * 1999-02-01 2005-07-12 Samsung Electronics Co., Ltd. Approved web site file downloading
US6327584B1 (en) * 1999-07-30 2001-12-04 Hewlett-Packard Company Apparatus and method for using version control to dynamically update files while the files are available for access
US6473854B1 (en) * 1999-10-07 2002-10-29 Micron Technology, Inc. Method for automatically retrieving and installing device drivers across a network
JP2001222500A (ja) * 1999-12-01 2001-08-17 Sharp Corp ネットワークゲートウェイにおけるプログラムの配布方法
US6609115B1 (en) * 1999-12-30 2003-08-19 Ge Medical Systems Method and apparatus for limited online access to restricted documentation
US6915337B1 (en) * 2000-03-07 2005-07-05 Ricoh Co. Ltd. Method and system for updating the device driver of a business office appliance
US6728787B1 (en) * 2000-03-31 2004-04-27 Mitsubishi Electric Research Labs, Inc System and method for locating and installing device drivers for peripheral devices
US6813670B1 (en) * 2000-09-26 2004-11-02 Microsoft Corporation Automatic server-side plug-and-play without user intervention
US6754722B2 (en) * 2000-11-29 2004-06-22 Dell Products L.P. System and method for installing device drivers in a computer system
US20020067504A1 (en) * 2000-12-06 2002-06-06 Xerox Corporation Method and apparatus for automatic upgrade of a product's printer driver
US7076536B2 (en) * 2000-12-21 2006-07-11 Microsoft Corporation Method and system to access software pertinent to an electronic peripheral device at an address based on a peripheral device identifier
JP3984895B2 (ja) * 2001-10-03 2007-10-03 キヤノン株式会社 情報処理装置およびサーバ装置およびドライバ更新方法およびコンピュータが読み取り可能な記憶媒体およびプログラム

Also Published As

Publication number Publication date
JP4373639B2 (ja) 2009-11-25
US7165109B2 (en) 2007-01-16
JP2009211729A (ja) 2009-09-17
JP2002288110A (ja) 2002-10-04
US20020095501A1 (en) 2002-07-18
EP1223722A3 (en) 2004-08-04
EP1223722A2 (en) 2002-07-17

Similar Documents

Publication Publication Date Title
JP4965605B2 (ja) エレクトロニック周辺デバイスに関係するソフトウェアへのアクセスを周辺デバイスにストアされたアドレスに基づいて行う方法とシステム
US7076536B2 (en) Method and system to access software pertinent to an electronic peripheral device at an address based on a peripheral device identifier
US6668376B1 (en) System and method for automatically loading a device driver
US7065769B1 (en) Method for automatically installing and updating drivers
US7600216B2 (en) Method for executing software applications using a portable memory device
RU2421785C2 (ru) Автоматизированное управление драйверами устройств
RU2383921C2 (ru) Простая и динамическая конфигурация сетевых устройств
US6466972B1 (en) Server based configuration of network computers via machine classes
US7886139B2 (en) Method to enable firmware to boot a system from an ISCSI device
US9934386B2 (en) Method and apparatus for managing the privacy and disclosure of location information
US6934853B2 (en) Method, system and program for sharing the ability to set configuration parameters in a network environment
US20080071935A1 (en) Self-Installing Computer Peripherals
US8554957B1 (en) Method for creation of device drivers and device objects for peripheral devices
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US20070198819A1 (en) Boot architecture discovery in pre-boot environment
JP2003521036A (ja) クライアント・コンピュータのブラウザからアプリケーションを受取り、インストールしかつランチするためのブラウザ独立及び自動装置及び方法
JP2002215395A (ja) デバイス固有ユーザインタフェース情報をusbデバイスのファームウェア内に指定するシステムおよび方法
JP2000298567A (ja) インターネット・ベース・プリンティング
JP2009507270A (ja) パーソナルインターネットコミュニケータのための検証されたコンピューティング環境
CN1696911B (zh) 用于打补丁的方法和计算系统
US20030131149A1 (en) Installer for driver of network device
US20060253851A1 (en) Software installation system and method thereof and storage medium for software installation program
US7237101B1 (en) Methods and apparatus for self describing devices
US20030182456A1 (en) Portable peripheral apparatus with an embedded storage module
GB2450422A (en) Installing device drivers for a peripheral device when establishing a connection between the peripheral device and a computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees