(57)【要約】【課題】オペレーティングシステムによって非管理者ユーザが通常禁止されている非標準機能を実現するために周辺機器と通信するための解決策を提供する。【解決手段】周辺機器は、ＵＳＢ等のプロトコルに従って、ホストと通信する。ホストのオペレーティングシステムによって、ホストのユーザが特定な情報を周辺機器へ送信することが制限されている場合、一つ以上の読み込みコマンドを含むプロトコル・コマンドのパターンを、制限にもかかわらず情報を送信できるように定義する。すべてのプロトコル・コマンドは、読み込みコマンドであることが好ましい。【選択図】図４
2008532134.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータのオペレーティングシステムによって、情報を周辺機器へ送信することが制限された、前記コンピュータのユーザが、情報を周辺機器へ送信するための方法であって、
（ａ）前記ユーザが、前記コンピュータから前記周辺機器へ前記情報を送信することを可能にする、プロトコル・コマンドのパターンを定義するステップ、この場合、前記プロトコル・コマンドのいずれも、前記オペレーティングシステムによって別個に制限されてはおらず、前記プロトコル・コマンドの少なくとも一つは読み込みコマンドである、
（ｂ）前記コンピュータから前記周辺機器へ前記パターンの前記プロトコル・コマンドを送信するステップ、
（ｃ）前記周辺機器によって、前記パターンの前記プロトコル・コマンドを受信するステップ、そして
（ｄ）前記周辺機器によって、前記パターンの前記プロトコル・コマンドを解釈して前記情報を読み取るステップからなる、方法。
【請求項２】
前記パターンのすべての前記プロトコル・コマンドが、読み込みコマンドである、請求項１の方法。
【請求項３】
さらに、
（ｅ）前記周辺機器によって、前記周辺機器内に記憶されたデータの、前記情報に応じたパスワード保護を実行するステップからなる、請求項１の方法。
【請求項４】
さらに、
（ｅ）前記周辺機器によって、前記情報に応じた認証ハンドシェーキングを実行するステップからなる、請求項１の方法。
【請求項５】
前記少なくとも一つの読み込みコマンドが、前記周辺機器の記述子を読み込む少なくとも一つのコマンドを含む、請求項１の方法。
【請求項６】
前記記述子が、前記周辺機器の未使用記述子である、請求項５の方法。
【請求項７】
前記プロトコル・コマンドの少なくとも二つが、前記周辺機器の一つの共通記述子を読み込む、連続的な読み込みコマンドである、請求項１の方法。
【請求項８】
前記パターンが非正規である、請求項１の方法。
【請求項９】
ホストのオペレーティングシステムによって、周辺機器へ情報を送信することが制限されたユーザが前記ホストから送信した情報を受信するように適応した周辺機器であって、前記周辺機器が、
（ａ）プロトコルに従って前記ホストと通信するためのインターフェイス、
（ｂ）前記ホストが出した前記プロトコルのコマンドに応答して、前記ホストのために機能を実行するための、コントローラを含むメカニズム、そして
（ｃ）前記プロトコルのコマンドの、前記ユーザが前記ホストから前記周辺機器へ前記情報を送信することを可能にするパターンを定義するコードを含む、前記情報を受信するためのメカニズムからなり、前記コマンドのいずれも、前記オペレーティングシステムによって別個に制限されておらず、前記パターンが少なくとも一つの読み込みコマンドを含むため、前記コントローラは、前記ホストから前記プロトコルの前記コマンドの非正規シーケンスを受信すると、
（i） 前記シーケンスを非正規であると認識し、そして
（ii）前記シーケンスが前記パターンに適合する場合に、前記シーケンスを解釈して前記情報を読み取る、周辺機器。
【請求項１０】
前記パターンのすべての前記プロトコル・コマンドが、読み込みコマンドである、請求項９の周辺機器。
【請求項１１】
前記コードがファームウェア内に具現化されている、請求項９の周辺機器。
【請求項１２】
前記プロトコルがＵＳＢプロトコルである、請求項９の周辺機器。
【請求項１３】
（ａ）請求項９の前記周辺機器、そして
（ｂ）請求項９の前記ホストからなる、システム。
【請求項１４】
コンピュータ読み取り可能なコードを持つコンピュータ読み取り可能な記憶メディアであって、前記コンピュータ読み取り可能な記憶メディア上に具現化された前記コンピュータ読み取り可能なコードは、ホストのオペレーティングシステムによって、周辺機器へ情報を送信することをユーザが制限されているにもかかわらず、前記周辺機器の前記ホストの前記ユーザが、前記ホストから前記周辺機器へ情報を送信することを可能にするものであり、前記コンピュータ読み取り可能なコードが、
（ａ）前記周辺機器と通信するために前記ホストが使用するプロトコルのコマンドの、前記ユーザが前記ホストから前記周辺機器へ前記情報を送信することを可能にするパターンを定義するプログラム・コード、なお、前記コマンドのいずれも、前記オペレーティングシステムによって別個に制限されておらず、前記パターンは少なくとも一つの読み込みコマンドを含む、そして
（ｂ）前記情報を前記パターンへ変換するためのプログラム・コードからなる、コンピュータ読み取り可能な記憶メディア。
【請求項１５】
少なくとも一人のユーザに対して、周辺機器へ平易な形式のメッセージを送信することを認めないオペレーティングシステムの下で作動しているホストが、標準プロトコルを介して周辺機器へメッセージを送信するための方法であって、
（ａ）前記ホストによって前記メッセージをコマンドのパターンへ変換すること、なお、前記パターンは、いずれのユーザに対しても、前記オペレーティングシステムによって前記周辺機器への送信が許容され、前記パターンのコマンドの少なくとも一つは読み込みコマンドであり、前記少なくとも一つの読み込みコマンドは非正規である、
（ｂ）前記ホストによって、前記周辺機器へ前記パターンのコマンドを送信すること、
（ｃ）前記周辺機器によって、前記パターンのコマンドを受信すること、
（ｄ）前記周辺機器によって、前記少なくとも一つの読み込みコマンドを、非正規であると識別すること、そして
（ｅ）前記周辺機器によって、前記パターンのコマンドを解釈し、前記メッセージを読み取ることからなる、方法。
【請求項１６】
ホストからメッセージを受信するためにホストと連動する周辺機器であって、前記ホストが前記メッセージをコマンドのパターンへ変換し、前記パターンのコマンドの少なくとも一つが読み込みコマンドであり、前記少なくとも一つの読み込みコマンドが非正規であり、
（ａ）前記ホストと通信し、そこから前記パターンのコマンドを受信するように構成されたインターフェイス、そして
（ｂ）前記パターンのコマンドを処理し、前記少なくとも一つの読み込みコマンドを、非正規であると識別し、そして前記パターンのコマンドを解釈して前記メッセージを読み取るように構成されたコントローラからなる、周辺機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのための周辺デバイスに、特に、プログラマブル・コントローラを含むＵＳＢ周辺デバイスに関する。
【背景技術】
【０００２】
パーソナル・コンピュータは、多種多様な周辺デバイス（周辺機器）、例えば、磁気ディスク、光学ディスクおよびソリッドステート・ディスク、プリンタ、モデム、キーボード、マウス等と連動する。周辺デバイスの多くは、ユニバーサルシリアルバス（ＵＳＢ）結合を介して、パーソナル・コンピュータへ取り外し可能に結合される。パーソナル・コンピュータ上で実行されているアプリケーションと、そのアプリケーションに必要な周辺機器との間の通信は、標準プロトコル（ＯＳのサービス）の下で、コンピュータのオペレーティングシステム（ＯＳ）によって制御される。
【０００３】
一般的な慣例では、いくつかのＯＳサービスは、組織のＩＴ（情報技術）システムに危険であると見なされるため、管理者として分類されたユーザのみがアクセス可能な制限サービスと定義される。非管理者ユーザは、ＩＴシステムへ危険性の全くない、または危険性の低い標準サービスのみが利用できる。
【０００４】
図１から図３は、コンピュータ、ＯＳサービスおよび周辺機器に関して、従来の技術を概略的に示す。  図１は、ホスト・コンピュータ１１０、例えばパーソナル・コンピュータ（デスクトップ、ラップトップまたはパームトップ）またはコンピューティング機能で拡張した携帯電話を含むコンピュータ・システム１００を示す、高度な概略ブロック図である。システム１００は、また、リンク１０５を介してコンピュータ１１０へ恒久的に、あるいは一時的に結合されたクライアント周辺デバイス１２０を含む。コンピュータ１１０は、ユーザ・アプリケーション１１８を実行するＣＰＵ１１２を含む。コンピュータ１１０内のユニバーサルシリアルバス（ＵＳＢ）インターフェイス１１６は、リンク１０５を確立するために、周辺機器１２０内の対応ＵＳＢインターフェイス１２６との電気的な、論理的な、そして機械的な結合を提供する。オペレーティングシステム１１４は、ＣＰＵ１１２のオペレーションを制御し、そしてＣＰＵ１１２が、一方でアプリケーション１１８と、他方で周辺機器１２０とインターフェイスするのを制御する。本発明の文脈における周辺機器１２０は、周辺機器１２０が、コントローラ・ファームウェア１２４の下で作動するコントローラ１２２を含むという点で洗練されている。機能１２８は、概して、周辺機器１２０がコンピュータ１１０に結合された目的のためのハードウェアおよびソフトウェア構成要素を表す。機能１２８の例としては、印刷、記憶、データ入力（例えばキーボード、マウス）、データ表示、ウェブ・カメラ等を含む。いくつかの実施例においては、機能１２８は、演算のためにコントローラ１２２を利用する。また、他の実施例では、機能１２８は、別のコントローラを利用する。いずれにせよ、本発明の文脈においては、コントローラ１２２は、ファームウェア１２４からのプログラムの下で、コンピュータ１１０と機能１２８との間のデータ・トラフィックを監視し制御する。例えば、コントローラ１２２は、リンク１０５を介して、オペレーティングシステム１１４のサービスが出すＵＳＢパケットを受信し、それらのパケットを機能１２８のために解釈する。リンク１０５は、直接接触、ケーブルまたは無線通信を介して実現される。
【０００５】
図２は、ソフトウェア・パッケージであるオペレーティングシステム１１４の簡略な構造図である。オペレーティングシステム１１４は、サービス１１４Ｓおよびパーミッション１１４Ｐを含む。サービス１１４Ｓは、コンピュータ１１０の一般機能、そしてコンピュータ１１０の周辺機器１２０との通信を制御するソフトウェア・ルーチンである。したがって、周辺機器１２０、例えばディスク、プリンターまたはキーボード等へのアクセスを必要とするユーザ・アプリケーション１１８は、サービス１１４Ｓから、その必要な周辺機器１２０とインターフェイスするための特定のサービスを呼び出す。パーミッション１１４Ｐは、直前のログイン・セッションを通してまたはパスワードを入力することによって識別された現在のコンピュータ・ユーザが、サービス１１４Ｓ内の、特定なサービスにアクセスすることが許可されるかどうかを明記する、ユーザまたはユーザ・タイプに関するデータベースである。簡潔で明瞭にするために、以下の考察では、二つのユーザ・タイプに焦点を合わせる。すべてのサービス１１４Ｓにアクセスするパーミッションを持つ管理者、そして関連ＩＴシステムにとってより危険な制限サービス１１４Ｓへのアクセスから閉め出されている、標準サービス１１４Ｓのみにアクセス可能な非管理者。この文脈において、ＩＴシステムは、その内容が最小の状態でコンピュータ１１０であり、また、もう一つの典型的なケースでは、コンピュータ１１０を含む会社のネットワークであってもよい。本技術においては、オペレーティングシステム１１４が、サービス１１４Ｓ内の特定なサービスを、パーミッション１１４Ｐの下で、特定のユーザに許可するか、あるいは禁止するかを判定することを可能にする、より高度なパーミッション階層が一般的である。
【０００６】
図３は、オペレーティングシステム１１４の下での、コンピュータ・システム１００のオペレーションを示すフローチャートである。ステップ２００で、アプリケーション１１８は、オペレーティングシステム１１４の下で稼働するＣＰＵ１１２から、サービス１１４Ｓ内の特定サービスを求める。ステップ２０２で、オペレーティングシステム１１４は、要求されたサービスが標準であるか、すなわち、すべてのユーザに許可されたものかどうかをチェックする。答えが正である場合、要求サービスがステップ２０６で実行される。そうでない場合、すなわち、もしステップ２０２でサービスが制限されていると判定された場合、オペレーティングシステム１１４は、パーミッション１１４Ｐ内で、現在のユーザが、ログイン・プロシージャを介して以前に識別されて（または、おそらく、パスワードの入力を促されたときにパスワードを正しく入力したことによって）管理者権限を持つか、すなわち、要求サービスに適格であるかどうかをチェックする。答えが正である場合、要求サービスがステップ２０６で実行される。そうでない場合、サービスはステップ２０８で拒否され、コンピュータ１１０のスクリーン（図示せず）上で、メッセージによってこのことをユーザに通知することが好ましい。プロシージャはステップ２１０で終了する。このときオペレーティングシステム１１４は、アプリケーション１１８から次のサービス・オーダを受信して調べる準備が整っている。
【０００７】
新しい周辺デバイス、機能およびアプリケーションは、次々に開発されており、それらにアクセスするためには、新しいオペレーティングシステム・サービスが必要となることがある。コンピュータ・オペレーティングシステムは、多数のコンピュータをカバーするよう標準化されているため、ＯＳ１１４内にそのような新しいサービスを収容するには長時間を要することもある。したがって、新しい周辺機器、機能およびアプリケーションの開発者は、新しい専用サービスが開発されてＯＳ１１４へ統合されるのを待たないで、既存のＯＳサービスへ理にかなった適用を施す。しかしながら、新しい、無害な周辺機器または機能が、同じサービスの代替利用が危険であると考慮されて制限されたＯＳサービスを必要とするとき、問題は起こる。
【０００８】
一例は、マイクロソフト・ウィンドウズ（登録商標）ＯＳの下で具現された、ＵＳＢプロトコルを介してパーソナル・コンピュータとインターフェイスする大容量記憶デバイスである。デバイスがファイルの読み込み書き込みオペレーションのために使用される限り、既存の標準ＯＳサービスは、すべてのユーザに対して、シームレスなオペレーションをサポートする。しかし、より新しい大容量記憶デバイスは、プログラム可能なビルトイン・プロセッサを含み、記憶のみではない、それ以上の機能を提供する。例えば、これらの大容量記憶デバイスは、それらの内容を、自動的にパスワード保護することができる、すなわち認証トークンを二倍にできる。そのような追加機能は、しばしば、ビルトイン・プロセッサ（例えばパスワード入力）との、あるいは（例えば認証ハンドシェーキング中）関連ＰＣアプリケーションからの、特定なデータ交換を必要とするが、そのようなデータ交換は、非管理者ユーザに対してウィンドウズ（登録商標）ＯＳが禁止する制限サービスを必要とする。
【０００９】
したがって、ＯＳ制限が通常禁止する非標準機能を実現するために、非管理者ユーザが周辺デバイスと通信するための解決策を提供する必要性が広く認識される。
【発明の開示】
【課題を解決するための手段】
【００１０】
本発明の目的は、オペレーティングシステムによって非管理者ユーザが通常禁止されている非標準機能を実現するために周辺機器と通信するための解決策を提供することである。
【００１１】
特に、本発明は、ＯＳサービスに頼ることなく、ＵＳＢ大容量記憶デバイスのコントローラと通信し、コントローラのオペレーションに影響を及ぼすための解決策を提供する。
【００１２】
以下の用語を下記に使用する。
【００１３】
「コンピュータ」または「ホスト」は、「ユーザ」へデータ処理機能を提供するデバイスである。コンピュータの例としては、パーソナル・デスクトップ、ラップトップおよびハンドヘルド・コンピュータを含み、携帯電話の一部を形成するハンドヘルド・コンピュータをも含む。本発明は、上記背景技術で説明したように、「管理者」および「非管理者」に選択的に「サービス」を提供する「オペレーティングシステム」（「ＯＳ」）の下で作動するそのようなデバイスに焦点を当てる。
【００１４】
（「周辺機器」とも呼ぶ）「周辺デバイス」は、コンピュータの機能を拡張するためにコンピュータへ結合されるデバイスである。本発明の関心は、コンピュータと周辺機器との間でＵＳＢ結合を使用することにある。そのような結合は、プリンタの場合のように実際上恒久的である、あるいは携帯用ＵＳＢフラッシュ・ディスクの場合のように通常一時的である。本発明は、コンピュータと周辺機器との間のデータ・フローを制御する、あるいは少なくとも監視するビルトイン・プロセッサを含むタイプの周辺機器に焦点を合わせる。
【００１５】
本発明によれば、コンピュータのオペレーティングシステムによって、周辺機器へ情報を送信することが制限されたコンピュータのユーザが、周辺機器へ情報を送信するための、次のステップからなる方法が提供される。（ａ）ユーザがコンピュータから周辺機器へ情報を送信することを可能にする、プロトコル・コマンドのパターンを定義するステップ。プロトコル・コマンドのいずれもがオペレーティングシステムによって別個に制限されることはない。また、プロトコル・コマンドの少なくとも一つは読み込みコマンドである。（ｂ）コンピュータから周辺機器へそのパターンのプロトコル・コマンドを送信するステップ。（ｃ）周辺機器によって、そのパターンのプロトコル・コマンドを受信するステップ。そして（ｄ）周辺機器によって、そのパターンのプロトコル・コマンドを解釈して情報を読み取るステップ。
【００１６】
本発明によれば、ホストのオペレーティングシステムによって、周辺機器へ情報を送信することが制限されたユーザがホストから送信した情報を受信するように適応した、次のものを含む周辺機器が提供される。（ａ）プロトコルに従ってホストと通信するためのインターフェイス。（ｂ）ホストが出したプロトコルのコマンドに応答して、ホストのために機能を実行するための、コントローラを含むメカニズム。そして（ｃ）プロトコルのコマンドの、ユーザがホストから周辺機器へ情報を送信することを可能にするパターンを定義するコードを含む、情報を受信するためのメカニズム。コマンドのいずれもオペレーティングシステムによって別個に制限されることはなく、そのパターンが少なくとも一つの読み込みコマンドを含むため、コントローラは、ホストからプロトコルのコマンドの非正規シーケンスを受信すると即座に、（i）そのシーケンスを非正規であると認識し、そして（ii）そのシーケンスがそのパターンに適合する場合、シーケンスを解釈して情報を読み取る。
【００１７】
本発明によれば、コンピュータ読み取り可能な記憶メディア上で具現化されたコンピュータ読み取り可能なコードを持つコンピュータ読み取り可能な記憶メディアが提供される。コンピュータ読み取り可能なコードは、ホストのオペレーティングシステムによって、周辺機器へ情報を送信することをユーザが制限されているにもかかわらず、周辺機器のホストのユーザが、ホストから周辺機器へ情報を送信することを可能にするもので、以下のものを含む。（ａ）周辺機器と通信するためにホストが使用するプロトコルのコマンドの、ユーザがホストから周辺機器へ情報を送信することを可能にするパターンを定義するプログラム・コード。コマンドのいずれもオペレーティングシステムによって別個に制限されることはない。また、パターンは少なくとも一つの読み込みコマンドを含む。そして（ｂ）情報をパターンへ変換するためのプログラム・コード。
【００１８】
本発明によれば、少なくとも一人のユーザに対して、周辺機器へ平易な形式のメッセージを送信することを認めないオペレーティングシステムの下で作動しているホストが、標準プロトコルを介して周辺機器へメッセージを送信するための、次のものを含む方法が提供される。（ａ）ホストによって、メッセージをコマンドのパターンへ変換すること。オペレーティングシステムによっていずれのユーザに対しても、パターンが周辺機器へ送信されることは許容されており、パターンのコマンドの少なくとも一つは読み込みコマンドであり、少なくとも一つの読み込みコマンドは非正規である。（ｂ）ホストによって、そのパターンのコマンドを周辺機器へ送信すること。（ｃ）周辺機器によって、そのパターンのコマンドを受信すること。（ｄ）周辺機器によって、少なくとも一つの読み込みコマンドを、非正規であると識別すること。そして（ｅ）周辺機器によって、そのパターンのコマンドを解釈してメッセージを読み取ること。
【００１９】
本発明によれば、ホストからメッセージを受信するためにホストと連動する、以下のものを含む周辺機器が提供される。この場合、ホストはメッセージをコマンドのパターンへ変換し、パターンのコマンドの少なくとも一つは読み込みコマンドであり、そして少なくとも一つの読み込みコマンドは非正規である。（ａ）ホストから上記パターンのコマンドを受信するためにホストと通信するように構成したインターフェイス。そして（ｂ）そのパターンのコマンドを処理し、少なくとも一つの読み込みコマンドを非正規であると識別し、そしてそのパターンのコマンドを解釈してメッセージを読み取るように構成したコントローラ。
【００２０】
本発明の基本的な方法によれば、周辺機器に対して、コンピュータのオペレーティングシステムによって制限されたオペレーションを引き起こすプロトコル・コマンドのパターンが定義される。情報を送信することがオペレーティングシステムによって「制限されている」ということは、オペレーティングシステムが、コンピュータの少なくとも幾人かのユーザに対して、例えば、オペレーティングシステムの、情報の送信に必要な一つ以上のサービスの使用をそれらのユーザに禁ずることによって、情報の送信を禁止することを意味する。例えば、組織が所有するコンピュータにおいては、オペレーティングシステムのいくつかのサービスの使用は、オペレーティングシステムによって、管理者権限をもつユーザに対してのみ許可されている。そのような情報の送信によってサポートされるユーザ行為の例としては、周辺機器内に記憶されたデータのパスワード保護や認証ハンドシェーキングがある。プロトコル・コマンドは、プロトコル・コマンドのいずれもがオペレーティングシステムによって別個に制限されないようになっている。換言すれば、コンピュータのどのユーザも、パターン内に使用したプロトコル・コマンドを発することは可能である。そのパターンは、少なくとも一つの読み込みコマンドを含み、パターンのプロトコル・コマンドは、コンピュータから周辺機器へ送信される。周辺機器は、パターンのプロトコル・コマンドを受信し、パターンのプロトコル・コマンドを解釈して情報を読み取る。注目すべきことは、コンピュータは、典型的に、その読み込みコマンドに応答して周辺機器がコンピュータへ送信するどんなデータも無視することである。読み込みコマンドの主要な目的は、周辺機器に情報を受信させることである。
【００２１】
パターンのすべてのプロトコル・コマンドは、読み込みコマンドであることが好ましい。また、読み込みコマンドの少なくとも一つは、周辺機器の記述子を読み込むコマンドであることが好ましい。周辺機器の未使用記述子を読み込むコマンドであることが最も好ましい。また、プロトコル・コマンドの少なくとも二つは、周辺機器の同じ記述子を読み込む、連続する読み込みコマンドであることが好ましい。
【００２２】
パターンは、非正規パターンであることが好ましい。本文における「非正規パターン」は、通常オペレーション中での発生が予期できない様式で従来の信号を採用する、または通常オペレーション中での発生がありそうもないのでそのような発生の可能性を無視できる、通信プロトコル・コマンドのパターンであると理解すべきである。
【００２３】
本発明の周辺機器は、プロトコルに従ってホストと通信するためのインターフェイス、ホストが出したプロトコルのコマンドに応答してホストのために機能を実行するためのメカニズム、そして、ホストのオペレーティングシステムによって、ユーザがホストから周辺機器へ情報を送信することが制限されているにもかかわらず、ユーザがホストから送信した情報を受信するためのメカニズムを含む。情報を受信するためのメカニズムは、ユーザがホストから周辺機器へ情報を送信することを可能にする、プロトコル・コマンドのパターンを定義するコードを含む。パターンは、少なくとも一つの読み込みコマンドを含む。コントローラは、ホストからプロトコル・コマンドの非正規シーケンスを受信すると即座に、シーケンスを非正規であると認識する。非正規と認識されたシーケンスが、また、パターンに適合する場合、コントローラは、シーケンスを解釈して情報を読み取る。パターンを定義するコードは、ファームウェア内に具現化することが好ましい。
【００２４】
パターンのすべてのプロトコル・コマンドは、読み込みコマンドであることが好ましい。
【００２５】
プロトコルは、ＵＳＢプロトコルであることが好ましい。
【００２６】
本発明の範囲は、また、そのような周辺機器と、そのホストとを含むシステムをも含む。
【００２７】
本発明の範囲は、また、ホストのオペレーティングシステムによって周辺機器への情報の送信をユーザが制限されているにもかかわらず、周辺機器のホストのユーザがホストから周辺機器へ情報を送信することを可能にする、コンピュータ読み取り可能なコードを具現化したコンピュータ読み取り可能な記憶メディアをも含む。ホストは、周辺機器と通信するためにプロトコルのコマンドを使用する。コードは、いずれもオペレーティングシステムによって別個に制限されていない、少なくとも一つが読み込みコマンドであるそのようなコマンドの、ユーザが周辺機器へ情報を送信することを可能にするパターンを定義するプログラム・コードを含む。コードは、また、情報をパターンへ変換するためのプログラム・コードをも含む。
【発明を実施するための最良の形態】
【００２８】
本発明は、ホスト・コンピュータが周辺機器のオペレーションを引き起こすための方法に関する。また、対応周辺機器に関する。特に、本発明は、コンピュータのオペレーティングシステムの標準サービスを迂回するために使用できる。
【００２９】
本発明による周辺機器の原理および作用は、図面と添付の説明を参照することにより、適切に理解できる。
【００３０】
ＵＳＢ規格の下で、ＵＳＢ周辺機器は、周辺機器に関する情報を提供するために、０から２５５の番号を付した２５６の記述子を持つ。共通して、記述子#０は、言語を示すために使用され、記述子#１は、製品等を示すために使用されている。実際、大きな番号の記述子は、産業全体に渡ってほとんど未使用であり、特定な周辺機器の製造業者がデバイス・パラメータを示すためのオプションとして残されている。そして、ユーザ・アプリケーションは、非管理者でさえも制限なしで、２５６の記述子すべてを読むことが許されている。
【００３１】
本発明は、ＵＳＢ周辺機器のコントローラへ情報を送信するために、非正規なシーケンスの記述子読み込みオペレーションを使用する。そのような読み込みコマンドが非管理者にも許可されているので、本発明は、ユーザ・アプリケーションが、下記のように周辺機器のコントローラへ所望の情報を送信することを可能にする。
【００３２】
再び図面を参照する。図４は、本発明の第一の好適実施例３００を表す、高度な概略ブロック図である。実施例３００は、コンピュータ３０２と周辺機器１２０とを含む。コンピュータ３０２、例えばパーソナル・デスクトップ・コンピュータは、図１に関して説明した従来の技術によるコンピュータ１１０のように、ＣＰＵ１１２、オペレーティングシステム１１４および標準アプリケーション１１８を含む。アプリケーション１１８、例えばワープロは、非管理者を含む、コンピュータ３０２のすべてのユーザが利用可能であるという点において、標準なものである。さらに、コンピュータ３０２は、制限（非標準）アプリケーション３０４をも記憶している。このアプリケーションは、オペレーティングシステム１１４がサポートしていない様式での、周辺機器１２０への情報送信を必要とする、または非管理者に対して非許可のＯＳサービスの利用を必要とする。
【００３３】
図５は、図４に示す実施例３００に対して代替的な、好適実施例３００Ａを表す高度な概略ブロック図である。実施例３００Ａにおいては、周辺機器は、記憶メディア１２８Ａを持つリムーバブル記憶デバイス１２０Ａである。そして非標準アプリケーション３０４は、コンピュータ３０２内に記憶されてそこからロードされる状態（図４）から、リムーバブル記憶デバイス１２０Ａ内に記憶されてそこからロードされる状態（図５）へ移行している。コンピュータ・アプリケーションは、内部記憶装置（図４）あるいは外部記憶装置（図５）から容易に実行できるため、実施例３００および３００Ａの両方は、アプリケーション３０４を実行するという点で同様である。
【００３４】
本発明は、図４または図５の非標準アプリケーション３０４が、例外なく許容される作用をコンピュータ３０２で発生させることによって、標準プロトコルを介して周辺機器１２０または１２０Ａと通信することを可能にする。しかし、コントローラ１２２が識別および解釈可能な、非正規なパターンの下で行う。周辺機器１２０または１２０Ａのコントローラ１２２は、下記のように非標準要求をコード入力信号として識別および解釈するために、すべての通信を監視し、そのファームウェア３２０を介してそのような非正規なパターンを検出するようにプログラムされている。背景技術によるコンピュータ・システム１００の場合のように、コンピュータ３０２のＵＳＢインターフェイス１１６は、リンク１０５を確立するために、周辺機器１２０または１２０Ａ内の対応ＵＳＢインターフェイスとの電気的な、論理的な、そして機械的な結合を提供する。また、背景技術によるコンピュータ・システム１００の場合のように、機能１２８は、周辺機器１２０または１２０Ａがコンピュータ３０２へ結合された目的のためのハードウェアおよびソフトウェア構成要素を表す。
【００３５】
コンピュータ３０２が、アプリケーション３０４による非標準要求を、非正規なシーケンスの読み込みコマンドへ変換することを可能にするコードが、アプリケーション３０４そのもののコード内に含まれる、本発明の実施例においては、周辺機器１２０Ａの記憶メディア１２８Ａは、本発明を具現するためのコンピュータ読み取り可能なコードを埋め込んだコンピュータ読み取り可能な記憶メディアの一例を構成する。
【００３６】
図６は、そのような非正規なパターンの生成および解釈を概略的に表すフローチャートである。ステップ３８０で、コンピュータ３０２上で作動している非標準アプリケーション３０４が、非標準要求の生成を開始する。ステップ３８２で、コンピュータ３０２は、非標準要求を非正規なシーケンスの読み込みコマンドへ変換する。このとき、個々の読み込みコマンドは、各々が標準であり普遍的に許容されている。ステップ３８４で、非正規なシーケンスの読み込みコマンドが、リンク１０５を介したコンピュータ３０２と周辺機器１２０または１２０Ａとの間の通信を通して実行される。ステップ３８６で、周辺機器１２０/１２０Ａが受信するすべての通信を監視するコントローラ１２２は、受信読み込みコマンドのシーケンスが非正規であることを検出する。その後、ステップ３８８で、コントローラ１２２が、非標準アプリケーション３０４とコントローラ・ファームウェア３２０とが一緒に使用するコード化規則に従って、非正規なシーケンスから、コード化されたメッセージを解釈する。ステップ３９０で、周辺機器１２０または１２０Ａが、ステップ３８８で解釈した非標準コマンドを実行したとき、プロシージャは終了する。
【００３７】
図７Ａから図７Ｃは、ＵＳＢデバイス１２０または１２０Ａ（図４および図５）から記述子を読み込む非正規なシーケンスを使用して、コマンドをコード化するための、三つの例示的な好適実施例を示す。これらの例では、ＵＳＢ仕様のセクション９．４内に定義されたＵＳＢ「ＧＥＴ_ＤＥＳＣＲＩＰＴＯＲ」標準デバイス要求を使用して、記述子を読み込む。図７Ａは、１から１００の範囲内のコマンド番号Ｎによってコード化したコマンドの送信を可能にするコーディング方法４０２を示す。コンピュータ３０２が生成するコマンド・シーケンスは、記述子１０１の四連続読み込みで開始する。そのような同じ記述子の反復読み込みは技術的に意味がないため、この読み込みシーケンスは非正規であると識別される。それからコントローラ１２２は、１から１００の範囲内の記述子Ｎを読み込むことを予測して、次の読み込みコマンドに注目し、その読み込みコマンドをコマンド#Ｎと解釈する。記述子１０１の次の読み込みオペレーションは、コード配列が正常に完了したことをコントローラ１２２へ合図する。
【００３８】
図７Ｂの例示的な好適実施例４０４は、周辺機器１２０あるいは１２０Ａのいずれも、１０１から２００の記述子を決して使用しないと仮定する。したがって、関連標準アプリケーション１１８は、１０１から２００の範囲内の番号が付した記述子を読み込もうと試みることは全くない。そのような仮定は、例えば、周辺機器１２０あるいは１２０Ａの型式の仕様を管理するプロバイダが、安全に行うことができる。そのような場合、コンピュータ３０２から周辺機器１２０あるいは１２０Ａへ送信した読み込みコマンド内の、１０１から２００の範囲内の記述子Ｎへの単なる参照が、読み込み記述子番号から１００を引くことによって計算されるインデックスを持つ特別なコマンドを示す（例えば、記述子１５９に関連する読み込みコマンドは、コントローラ１２２がコマンド#５９と解釈する）。
【００３９】
図７Ｃは、もう一つの例示的な好適コーディング方法４０６を表す。これは、コンピュータ３０２から周辺機器１２０あるいは１２０Ａ（図４および図５）へ、いかなるタイプおよび数量のコード化データでも送信できるように考案したものである。いかなるタイプおよび数量のデータも、十六進数字のストリングで表すことができるため、コンピュータ３０２は、まず、記述子#１０２に対する４つの読み込みコマンドの非正規シーケンスを、それから、各々対応する十六進数字を表す、０から１５の範囲内の記述子に対する一連の読み込みコマンドを送信する。全ストリングが完成すると、記述子#１０２に対するもう一つの読み込みコマンドが、ストリングの終了を合図する。
【００４０】
注意すべきことは、本発明が、（非標準アプリケーション３０４を実行する）コンピュータ３０２と（非正規読み込みオペレーションを検出して解釈する）周辺機器１２０あるいは１２０Ａとの協調に基づくため、非正規であるとコントローラ１２２が一度識別した読み込みコマンドは、正規の様式で実行する（すなわち、周辺機器１２０あるいは１２０Ａからコンピュータ３０２へ対象記述子の内容を送信する）必要がないことである。したがって、図６のステップ３８４の実行は、読み込みコマンドを送信するが、対象記述子の内容を実際に受信することのない簡略なものにできる。しかしながら、そのような記述子が、コントローラ１２２に読み込まれてコンピュータ３０２へ送信され、そしてコンピュータ３２２に無視されるのであれば、図６のプロシージャも適切に機能する。
【００４１】
本発明を限られた数の実施例に関して説明したが、本発明の多くの変形、修正、そして他の応用が可能であることは明らかである。
【図面の簡単な説明】
【００４２】
本発明を、例としてのみ、添付の図面を参照して説明する。    
【図１】背景技術におけるコンピュータ・システムを表す、高度な概略ブロック図である。
【図２】図１に示すシステムのコンピュータの、オペレーティングシステムを表す簡略図である。
【図３】図１に示すシステムのオペレーションを表すフローチャートである。
【図４】本発明のコンピュータ・システムを表す、高度な概略ブロック図である。
【図５】本発明のコンピュータ・システムを表す、高度な概略ブロック図である。
【図６】図４および図５に示すシステムのオペレーションを表すフローチャートである。
【図７Ａ】記述子読み込みコマンドの好適な、三つの非正規パターンを表す。
【図７Ｂ】記述子読み込みコマンドの好適な、三つの非正規パターンを表す。
【図７Ｃ】記述子読み込みコマンドの好適な、三つの非正規パターンを表す。
【図１】
2008532134.tif 000003
【図２】
2008532134.tif 000004
【図３】
2008532134.tif 000005
【図４】
2008532134.tif 000006
【図５】
2008532134.tif 000007
【図６】
2008532134.tif 000008
【図７Ａ】
2008532134.tif 000009
【図７Ｂ】
2008532134.tif 000010
【図７Ｃ】
2008532134.tif 000011
【国際調査報告】
2008532134.tif 000012