(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムとともに動作するコンピューティング装置で、マスストレージクラスのデジタル画像装置を制御するために使用する方法であって、前記コンピューティング装置は情報処理手段（２２）および通信手段（４４）を有し、
マスストレージクラスデジタル画像装置上のファームウェアによって解釈可能なＰＴＰ制御コマンドを前記情報処理手段により提供し、
前記ＰＴＰ制御コマンドを前記情報処理手段によりＳＣＳＩ転送プロトコル中にパッケージし、
前記ＳＣＳＩ転送プロトコル中にパッケージしたＰＴＰ制御コマンドをマスストレージクラスデジタル画像装置に前記通信手段によりＵＳＢケーブルを通じて送出する
ことを特徴とする方法。
【請求項２】
前記パッケージしたＰＴＰ制御コマンドを前記マスストレージクラスデジタル画像装置で受け取ることを特徴とする請求項１に記載の方法。
【請求項３】
前記パッケージしたＰＴＰ制御コマンドをアンパッケージすることを特徴とする請求項２に記載の方法。
【請求項４】
前記ＰＴＰ制御コマンドをマスストレージクラスデジタル画像装置で実施することをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記ＰＴＰ制御コマンドが、
マスストレージクラスデジタル画像装置に固有の拡張コマンド
を有することを特徴とする請求項１に記載の方法。
【請求項６】
前記パッケージするステップではさらに、前記情報処理手段により、
コマンド記述子ブロックを含むＳＣＳＩパススルー構造にエントリを提供し、
ＳＣＳＩパススルー構造内に、前記コマンド記述子ブロックについてのエントリおよび値を提供し、
結果の情報を保持するためのデータバッファを提供する
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記送出するステップは前記ＳＣＳＩ転送プロトコルとしてのＵＳＢプロトコルを介して行われることを特徴とする請求項１に記載の方法。
【請求項８】
オペレーティングシステムとともに動作するコンピューティング装置で、アプリケーションプログラムとＵＳＢマスストレージクラスデジタル画像装置間でＰＴＰ制御コマンドを通信するために使用する方法であって、前記コンピューティング装置は情報処理手段および通信手段を有し、
アプリケーションプログラムと対話して、コンピューティング環境内で装置固有のＰＴＰ制御コマンドを前記情報処理手段により生成し、
前記ＰＴＰ制御コマンドをＳＣＳＩパススルーコマンドとして、ＵＳＢチャンネルを介して前記通信装置によりＵＳＢ装置に送出し、
前記ＵＳＢマスストレージクラスデジタル画像装置側で、
前記ＳＣＳＩパススルーコマンドを解釈し、
前記ＵＳＢマスストレージクラスデジタル画像装置に固有のＰＴＰ制御コマンドを該ＵＳＢマスストレージクラスデジタル画像装置上のファームウェアを使用して実行する
ことを特徴とする方法。
【請求項９】
前記固有のＰＴＰ制御コマンドが、前記ＵＳＢマスストレージクラスデジタル画像装置と関連付けられた複数の利用可能コマンドの１つであり、前記コマンドの前記実行の結果、前記ＵＳＢマスストレージクラスデジタル画像装置によって少なくとも１つの操作が行われることを特徴とする請求項８に記載の方法。
【請求項１０】
コンピューティング装置によって制御可能なマスストレージクラスデジタル画像装置で使用する方法であって、
前記マスストレージクラスデジタル画像装置は、ファームウェア（２２６）および制御システム（２３０）を有し、
前記コンピューティング装置からコマンドをＳＣＳＩ転送プロトコルを介して前記ファームウェアにより受け取り、
前記コマンドは画像装置によって解釈可能なパッケージされたＰＴＰ制御コマンドを含み、前記コマンドは前記ファームウェアによりアンパッケージされ、前記マスストレージクラスデジタル画像装置を制御するために前記制御システムにより実行されることを特徴とする方法。
【請求項１１】
請求項１に記載のステップを実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１２】
メモリ、オペレーティングシステム、および前記情報処理手段としての中央プロセッサを有し、前記中央プロセッサを操作して、請求項１１のコンピュータ可読媒体に記憶された命令を実行することができることを特徴とするコンピュータシステム。
【請求項１３】
オペレーティングシステムとともに動作するコンピューティング装置で、アプリケーションプログラムとＵＳＢマスストレージクラスデジタル画像装置間でＰＴＰ制御コマンドを通信するために使用するプログラムを記録したコンピュータ可読媒体であって、前記プログラムは前記コンピューティング装置に、
アプリケーションプログラムと対話して、コンピューティング環境内で装置固有のＰＴＰ制御コマンドを生成する情報処理手段と、
前記ＰＴＰ制御コマンドをＳＣＳＩパススルーコマンドとして、ＵＳＢチャンネルを介してＵＳＢ装置に送出する通信手段と
として機能させることを特徴とするコンピュータ可読媒体。
【請求項１４】
メモリ、オペレーティングシステム、および中央プロセッサを有し、前記中央プロセッサを操作して、請求項１３のコンピュータ可読媒体に記憶された命令を実行することができることを特徴とするコンピュータシステム。
【請求項１５】
請求項１０に記載のステップを実行するためのコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１６】
メモリ、オペレーティングシステム、および中央プロセッサを有し、前記プロセッサを操作して、請求項１５のコンピュータ可読媒体に記憶された命令を実行可能なことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願は、２０００年１０月１７日に提出された米国仮出願番号第６０／２４０７７２号の特典を請求するものである。
【０００２】
本発明はコンピュータソフトウェアに関する。より詳細には、本発明は、マスストレージクラス（ｍａｓｓ  ｓｔｏｒａｇｅ  ｃｌａｓｓ）のデジタル画像装置と通信し、それを制御するシステムおよび方法に関する。
【０００３】
【従来の技術】
デジタルカメラなどのマスストレージクラスのデジタル画像装置と通信できるコンピュータシステムは、共有的な構成となっている。例えば、パーソナルコンピュータ（ＰＣ）と通信するデジタルカメラはいくつかあるが、通信および制御を実現する方法はそれぞれの製造者に独自のものである。市場に出ている各種のカメラのブランドおよびモデルに必要な、関連するインタフェースおよびドライバの数が非常に多くなるため、これは基本的にユーザにとって問題となる。
【０００４】
この問題を解決する試みの１つが、利用する標準プロトコル、すなわちＵＳＢマスストレージクラス（マスストレージクラス）装置仕様を製造者が導入することであった。上記の仕様によりデジタルカメラを実施する場合、ネイティブのドライバサポートを備えたオペレーティングシステムが、ユーザに「プラグアンドプレイ」体験をもたらすことができという利益が提供される。この実施はまた、そのような仕様に準拠した装置が、ＰＣ上で記憶装置として認識される（ａｐｐｅａｒ）ことを可能にし、ユーザがその装置からあるいはその装置にファイルをコピーすることを可能にする。しかしデジタルカメラは、記憶されている画像に関連しないファイルをいくつか有する可能性があり、そのため、ユーザには、興味ある画像ファイルを入手するために検索し（ｎａｖｉｇａｔｅ）なければならないファイルが多数提示されることになる。ＵＳＢマスストレージクラス装置仕様による実施の他の欠点は、装置を実際に制御することができない点である。例えば、カメラに対する既存のサポートでは、カメラの時計をＰＣから設定することはできない。ユーザにとって利益となりうる上記のコントロールおよび他の固有のコントロールは、現在利用できる一律のカメラサポートのための実施下では使用することができない。例えば、ユーザは、ライブキャプチャの実行、カメラの照会、あるいはカメラのプロパティ設定の調整をしたいと思うかもしれない。現在のところ、これらの機能で、既存のＵＳＢマスストレージクラス装置仕様を用いて行えるものはない。その代わり、これらのタスクを行うためには、製造者から入手する固有のドライバあるいはアプリケーションが必要となる。
【０００５】
【発明が解決しようとする課題】
したがって、マスストレージデジタル画像装置、特にカメラが、ユーザ経験の一部となっているようなインタフェースや特徴を利用可能な方法が必要とされている。製造者が専用の（ｃｕｓｔｏｍ）制御用ソフトウェアを開発することを必要とはせず、マスストレージクラスデジタルカメラなどのデジタルコンテンツ装置において大半の一般的なタスクを制御するための拡張可能な制御プロトコルが必要とされている。言い換えると、自社装置にこの制御プロトコルを実施する製造者は、Ｗｉｎｄｏｗ  Ｉｍａｇｅ  Ａｃｑｕｉｓｉｔｉｏｎ（ＷＩＡ）ウィザードなどのオペレーティングシステムアプリケーションにより、あるいはオペレーティングシステム内で定義されるアプリケーションプログラムインタフェース（ＡＰＩ）を介在した他のプログラムにより装置を制御することから利益を受けることができる。
【０００６】
【課題を解決するための手段】
本発明の一形態では、マスストレージクラスデジタル画像装置と通信する方法を対象とする。この方法は、コンピュータに結合されたデジタル画像装置の制御を可能にするプロトコルを提供する。このプロトコルは、修正および拡張が可能な業界標準のＳＣＳＩプロトコルに基づいており、接続媒体上での透過な通信を可能にし、ＳＣＳＩパススルー（ＳＰＴ）と呼ばれる。
【０００７】
本発明の他の形態では、コンピュータ内で起動されるコマンドセットの定義を目的とする。このコマンドは業界標準のピクチャトランスファープロトコルを包含および拡張し、またマスストレージクラスデジタルカメラ内での適用および実行を目的とする。
【０００８】
本発明の他の形態は、デジタルカメラの制御、すなわち、上述のプロトコルおよびコマンドをあわせたものがＳＣＳＩパススルーカメラコマンドプロトコル（ＳＰＴＣＣＰ）と呼ばれる上記のプロトコルおよびコマンドを用いたデジタルカメラの制御を目的とする。
【０００９】
さらに本発明の他の形態では、デジタル画像装置に関連する情報を受け渡しするために使用することができるデータ構造の形でデータバッファを定義することを目的とする。
【００１０】
【発明の実施の形態】
本発明は、あるタイプのハードドライブ、コンパクトディスク装置など、構造型ファイルシステムを含む、マスストレージクラス（ＭＳＣ）デジタルカメラなどのマスストレージクラスデジタル画像装置、あるいは類似のデジタルコンテンツ装置を制御するシステムおよび方法を提供する。本明細書に記載する特定の実施形態は、あらゆる点で制限的なものではなく説明を目的とするものである。本発明に関連する代替実施形態は、その範囲から逸脱することなく、当業者に明らかになろう。図１は、本発明の実施が可能な適切なコンピューティングシステム環境の例を示す。このコンピューティングシステム環境は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関して何らの制約を提示するものではない。このコンピューティング環境はまた、例示的動作環境に示す任意の一構成要素、あるいはその組合せに関して依存関係または必要性を有するものとは解釈すべきでない。
【００１１】
本発明は、多数の汎用または特殊目的のコンピューティングシステム環境または構成で操作可能である。本発明で使用するのに適しており、よく知られたコンピューティングシステム、環境、および／または構成の例には、パーソナルコンピュータ、サーバコンピュータ、携帯用装置またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散型コンピューティング環境などが挙げられるが、これらに制限するものではない。
【００１２】
本発明は、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、あるいは特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポネント、データ構造などが含まれる。本発明は、通信ネットワークを通じてリンクされた遠隔処理装置によってタスクが実行される分散型コンピューティング環境で実施してもよい。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモートどちらのコンピュータ記憶媒体に位置させてもよい。
【００１３】
図１を参照すると、本発明を実施するための例示的システムは、コンピュータ２０の形態の汎用コンピューティング装置を含んでいる。コンピュータ２０の構成要素は、処理装置２２、システムメモリ２４、およびシステムメモリを含む種々のシステム構成要素を処理装置２２に結合するシステムバス２６を含むが、これらに制限するものではない。システムバス２６は、メモリバスまたはメモリコントローラ、周辺バス、および各種バスアーキテクチャのいずれかを使用するローカルバスを含む数種のバス構造のうち任意のものでよい。そのようなアーキテクチャには例えば、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどが含まれるが、これらに制限するものではない。
【００１４】
コンピュータ２０は通例、種々のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ２０からアクセスできる任意の利用可能媒体でよく、揮発性媒体および不揮発性媒体の両方、取り外し可能媒体および固定式媒体の両方を含む。一例として、コンピュータ可読媒体はコンピュータ記憶媒体および通信媒体からなることが可能であるが、これらに制限するものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは他のデータなど、情報記憶の方法または技術で実施された揮発性および不揮発性両方の媒体、取り外し可能および固定式両方の媒体を含む。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル汎用ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を記憶することができ、かつコンピュータ２０からアクセスできる他の任意の媒体が含まれるがこれらに制限するものではない。通信媒体は通例、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは他のデータを搬送波または他の伝送媒体などの変調データ信号に実施し、かつ任意の情報伝達媒体を含む。用語「変調データ信号」とは、その特性の１つまたは複数を設定した信号、または情報をその信号中にコード化する方式で変化した信号を意味する。例として通信媒体には、配線式ネットワークまたは直接配線接続などの配線式媒体、および音波、ＲＦ、赤外線あるいはその他の無線媒体などの無線媒体が含まれるがこれらに制限するものではない。任意の上記の媒体の組合せもコンピュータ可読媒体の範囲内に含まれる。
【００１５】
システムメモリ２４は、ＲＯＭ（読み出し専用メモリ）２８およびＲＡＭ（ランダムアクセスメモリ）３０など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。スタートアップ時などにコンピュータ２０内のエレメント間での情報転送を助ける基本ルーチンを含んだ基本入出力システム（ＢＩＯＳ）３２は、通例、ＲＯＭ２８に記憶されている。ＲＡＭ３０は通例、処理装置２２から直ちにアクセスすることができ、かつ／または処理装置２２が現在走査しているデータおよび／またはプログラムモジュールを含む。例として、図１にはオペレーティングシステム４６、アプリケーションプログラム４８、他のプログラムモジュール５０、およびプログラムデータ５２を示しているがこれらに制限するものではない。
【００１６】
コンピュータ２０は、他の取り外し可能／固定式、揮発性／不揮発性のコンピュータ記憶媒体も含むことが可能である。例として、図１には、固定式不揮発性磁気媒体に対して読み出しまたは書き込みを行うハードディスクドライブ３４、取り外し可能な不揮発性磁気ディスク３８に対して読み出しまたは書き込みを行う磁気ディスクドライブ３６、ＣＤ  ＲＯＭあるいは他の光学媒体などの取り外し可能な不揮発性光ディスク４２に対して読み出しまたは書き込みを行う光ディスクドライブ４０を示しているが、これらは例に過ぎない。この例示的動作環境で使用できる他の取り外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタルビデオディスク、デジタルビデオテープ、ベルヌーイカートリッジ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどがあるがこれらに制限するものではない。ハードディスクドライブ３４、磁気ディスクドライブ３６、および光ディスクドライブ４０は通例、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）４４によりシステムバス２６に接続される。あるいは、ハードディスクドライブ３４、磁気ディスクドライブ３６、および光ディスクドライブ４０はそれぞれ、ハードディスクドライブインタフェース、磁気ディスクドライブインタフェース、および光学ドライブインタフェースによりシステムバス２６に接続してもよい。
【００１７】
上記で説明し、図１に示すドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ２０用のその他のデータの記憶を提供する。図１で、例えばハードディスクドライブ３４はオペレーティングシステム４６、アプリケーションプログラム４８、他のプログラムモジュール５０、およびプログラムデータ５２を記憶するものとして示している。これらの構成要素はこの例と同じでも、あるいはオペレーティングシステム４６、アプリケーションプログラム４８、他のプログラムモジュール５０、およびプログラムデータ５２とは異なってもよいことに留意されたい。ユーザは、キーボード５４、および一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティング装置５６などの入力装置を通じて、コマンドおよび情報をコンピュータ２０に入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどが含まれる。上記の入力装置およびその他の入力装置は、しばしば、ユーザ入力インタフェース５８またはシステムバスに結合されたシリアルポートインタフェース６０を通じて処理装置２２に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など、他のインタフェースおよびバス構造によって接続してもよい。モニタ６１または他タイプのディスプレイ装置も、ビデオアダプタ６２などのインタフェースを介してシステムバス２６に接続される。モニタ６１に加えて、構成要素には、スピーカおよびプリンタなど他の周辺出力装置を含んでもよく、これらは出力周辺インタフェースを通じて接続することができる。
【００１８】
コンピュータ２０は、リモートコンピュータ６４など１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ６４はパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、あるいは他の共通ネットワークノードでよく、また図１にはメモリ記憶装置しか示していないが、通例はコンピュータ２０に関連して上記で説明した要素の多く、またはすべてを含む。図１に示す論理接続は、ＬＡＮ（ローカルエリアネットワーク）６６、およびＷＡＮ（ワイドエリアネットワーク）６８を含むが、その他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットワークなどで一般的である。
【００１９】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ２０は、ネットワークインタフェースまたはアダプタ７０を通じてＬＡＮ６６に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ２０は通例、インターネットなどのＷＡＮ６８を介して通信を確立するためのモデム７２または他の手段を含む。モデム７２は内蔵型でも外付け型でもよく、シリアルポートインタフェース６０または他の適切な機構を介してシステムバス２６に接続することが可能である。ネットワーク環境では、コンピュータ２０に関連して説明したプログラムモジュール、あるいはその一部分はリモートメモリ記憶装置に記憶することができる。例えば、図１ではリモートアプリケーションプログラム４８はメモリ装置６４にあるものとして示しているがこれに制限するものではない。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を用いてもよいことは理解されよう。
【００２０】
コンピュータ２０のその他の多くの内部構成要素は示していないが、当業者は、そのような構成要素およびその相互接続はよく知られていることを理解されよう。したがって、コンピュータ２０の内部構成に関する詳細については、本発明との関連でさらに説明する必要はない。
【００２１】
当業者は、オペレーティングシステム４６、アプリケーションプログラム４８、およびデータ５２などのプログラムモジュールは、ＲＯＭ２８、ＲＡＭ３０、ハードディスクドライブ３４、磁気ディスクドライブ３６、または光ディスクドライブ４０を含む、そのメモリ記憶装置の１つを介してコンピュータ２０に提供されることを理解されよう。ハードディスクドライブ３４を使用して、データ５２、およびオペレーティングシステム４６とアプリケーションプログラム４８を含むプログラムを記憶することが好ましい。
【００２２】
コンピュータ２０をオンにするか、あるいはリセットすると、ＲＯＭ２８に記憶されているＢＩＯＳ３２が、オペレーティングシステムをハードディスクドライブ３４からＲＡＭ３０にロードするように処理装置２２に命令する。オペレーティングシステム４６をＲＡＭ３０にロードすると、処理装置２２がオペレーティングシステムコードを実行し、オペレーティングシステム４６のユーザインタフェースに関連する視覚エレメントをモニタ６１に表示する。ユーザがアプリケーションプログラム４８を開くと、プログラムコードおよび関連データがハードディスクドライブ３４から読み出され、ＲＡＭ３０に記憶される。
【００２３】
図２に、本発明を実施するためのアーキテクチャを例示的に示す。この参照アーキテクチャを構成する３つのコンポーネント、すなわちユーザコンポーネント２５０、カーネルコンポーネント２６０、および外部ＵＳＢマスストレージクラス（ＭＳＣ）デジタルカメラ２２４がある。本発明はユーザコンポーネント２５０に実装され、カーネル２６０内の既存のアーキテクチャおよび方法を使用し、ＵＳＢ接続２２２を介してＭＳＣ２２４内のファームウェアの実装と通信する。本発明の方法は、装置をＰＣに接続している物理バス媒体に無関係であることに留意されたい。本発明は、先に説明したような他の機能を実行するためにも応用でき、この場合は、Ｗｉｎｄｏｗｓ(登録商標)エクスプローラ２００などのＰＣアプリケーションを使用してファイルシステムインタフェース２１４を介してカーネルと通信し、最終的にＭＳＣ装置２２４およびそれに関連するファイルシステム２２８の表示情報を表示する。
【００２４】
本発明の一実施形態は、ＷＩＡ（Ｗｉｎｄｏｗｓ(登録商標)  Ｉｍａｇｅ  Ａｃｑｕｉｓｉｔｉｏｎ）ウィザードおよび他のＷＩＡ可能アプリケーション２１０によって起動されるコマンドを通じてＭＳＣ装置２２４を制御することを目的とする。起動されたコマンドはデジタルカメラ用のマスストレージドライバ２１２により、ＳＣＳＩパススルーコマンドとしてパッケージされ、次いで、ユーザモードファイルシステムインタフェース２１４、カーネルコンポーネント２６０、およびＵＳＢケーブル２２２を通じて、透過にＭＳＣ２２４に渡される。ここで説明するコマンドの行先は、ＭＳＣ２２４の制御ファームウェア２２６である。ファームウェア２２６は、製造者提供のハードウェア、およびＳＣＳＩパススルーカメラコマンドプロトコル（ＳＰＴＣＣＰ）を認識し（ｂｅ  ａｗａｒｅ）てそれを解読することができるソフトウェアを含み、これにより標準ＰＩＭＡ（Ｐｈｏｔｏ  Ｉｍａｇｉｎｇ  Ｍａｒｋｅｔｉｎｇ  Ａｓｓｏｃｉａｔｉｏｎ）ＰＴＰ（ピクチャトランスファープロトコル）コマンドなどの基礎装置制御コマンドを獲得する。意図するコマンドを得ると、それをＭＳＣ２２４内に位置する制御システム２３０によって実行する。それに関連する応答はいずれも、上記のプロセスと逆のプロセスを通じて開始アプリケーションに戻される。
【００２５】
一般に、プロトコルは、各種ビットと、構造化され互いに関連付けられたデータの要素とを使用して情報を２つ以上の装置間でどのように交換するかにより定義される。同様に、ＳＰＴＣＣＰプロトコルには、情報の交換に使用される定義されたデータ構造がある。ＳＰＴＣＣＰはその基礎としてＳＣＳＩプロトコルを有するので、ＳＰＴＣＣＰ構造の要素はＳＣＳＩに見られる要素に由来し、ＳＣＳＩの要素と互換性がある。典型的なＳＣＳＩ  パススルーデータ構造は、Ｃ／Ｃ＋＋の形では次のように定義される。
【００２６】
ｔｙｐｄｅｆ  ｓｔｒｕｃｔ  ＳＣＳＩ＿ＰＡＳＳ＿ＴＨＲＯＵＧＨ＿ＤＩＲＥＣＴ｛
ＵＳＨＯＲＴ    Ｌｅｎｇｔｈ；
ＵＣＨＡＲ      ＳｃｓｉＳｔａｔｕｓ；
ＵＣＨＡＲ      ＰａｔｈＩｄ；
ＵＣＨＡＲ      ＴａｒｇｅｔＩｄ；
ＵＣＨＡＲ      Ｌｕｎ；
ＵＣＨＡＲ      Ｃｄｂｌｅｎｇｔｈ；
ＵＣＨＡＲ      ＳｅｎｓｅＩｎｆｏＬｅｎｇｔｈ；
ＵＣＨＡＲ      ＤａｔａＩｎ；
ＵＬＯＮＧ      ＤａｔａＴｒａｎｓｆｅｒＬｅｎｇｔｈ；
ＵＬＯＮＧ      ＴｉｍｅｏｕｔＶａｌｕｅ；
ＰＶＯＩＤ      ＤａｔａＢｕｆｆｅｒ；
ＵＬＯＮＧ      ＳｅｎｓｅＩｎｆｏＯｆｆｓｅｔ；
ＵＣＨＡＲ      Ｃｄｂ［１６］；
｝ＳＣＳＩ＿ＰＡＳＳ＿ＴＨＲＯＵＧＨ＿ＤＩＲＥＣＴ，＊
ＰＳＣＳＩ＿ＰＡＳＳ＿ＴＨＲＯＵＧＨ＿ＤＩＲＥＣＴ
【００２７】
データバッファおよび他の要素を含むＳＣＳＩパススルー構造は、ドライバ空間に翻訳され、ターゲット装置にパススルーされる。上に示す構造中のＤａｔａＢｕｆｆｅｒおよびＣｄｂは、ＭＳＣ２２４のためのコマンドプロトコルを定義する情報を含んでいる。すなわちＳＰＴＣＣＰは、ＣｄｂおよびＤａｔａＢｕｆｆｅｒ中のビットを指定および配置することによって定義される。Ｃｄｂは、ＳＣＳＩコマンドおよびパラメータを含むコマンド記述子ブロックである。本発明の一実施形態では、Ｇｒｏｕｐ０  Ｃｄｂとしても知られる６バイト長Ｃｄｂを使用してプロトコルを定義する。したがって、上記で説明したパススルー構造を参照すると、パススルー構造中の１６バイトＣｄｂの最初の６バイトだけを利用する。この６バイトの内容は、ＭＳＣ２２４を行先とするコマンドのタイプおよび形式（フォーマット）を決定する。Ｃｄｂの固有の構造を説明することは、本発明のプロトコルを理解する上で必要である。
【００２８】
図３は、ＭＳＣとの通信にＳＰＴＣＣＰが使用するＣｄｂ全体を３００として表している。図に示すように、バイト３０１〜３０６はそれぞれ、特定タイプの情報を保持するように指定されている。各バイト内でこの情報は、個々のビット、またはビットグループで表すことができる。例えば、バイト０  ３０１は、特定コマンドの演算コードを保持するように指定されている。この演算コードはグループコードおよびコマンドコードからなり、したがってバイト０  ３０１では、５ビット（ビット０〜ビット４）を使用してコマンドコードを表し、３ビット（ビット５〜ビット７）を使用してグループコードを表している。
【００２９】
ＳＰＴＣＣＰで利用可能であるか、あるいは使用されるコマンドコードは、ＳＣＳＩ委員会、およびこの場合はＭＳＣであるターゲット装置の両方によって規定される。本発明の一実施形態では、ＭＳＣと関連付けられた必須コマンドコードが４つある。これらのコマンドはそれぞれ、Ｃｄｂ構造を適切なパラメータでポピュレートすることにより装置に送られる。これは、バイト０をＭＳＣにとって適切なコマンドでポピュレートすることを意味する。次の表は、カメラ装置用のコマンドを要約したものである。カメラ装置カテゴリは、ＳＣＳＩ−２仕様で定義される装置タイプ（例えば直接アクセス装置、プリンタ装置、およびスキャナ装置など）の１つである。これらのコマンドおよび演算は、将来拡張される可能性もある。以下は、ＭＳＣ装置でサポートできる演算コードである。
【００３０】
【表１】
0004391712.tif 000002
【００３１】
この演算コードのリストは、新しい機能を定義するためにベンダが拡張することができる。ただし、ある装置がＳＰＴＣＣＰ装置と見なされるように、上記のコードは定義通りに振舞わなければならない。
【００３２】
再び図３を参照すると、バイト１（３０２）は、ターゲット装置のＬＵＮ（論理装置番号）の記憶位置である。本発明ではＳＣＳＩタイプのコマンドを使用するので、ＳＣＳＩ規格に従う必要がある。ＳＣＳＩプロトコルには、各装置はネットワーク上で一意の識別を持たなければならないという要件があり、このアドレスがＬＵＮと呼ばれ、通例は０〜１５の範囲にわたる。バイト２（３０３）は、Ｃｄｂが渡すことのできる３つのパラメータのうち最初のパラメータの記憶位置である。本発明の一実施形態では、この位置は、メモリアドレスであるページコードの記憶に使用される。バイト３（３０４）は通常は確保しておくが、コマンドに応じてｌｏバイトのコードの記憶に使用することがある。バイト４（３０５）は、基礎コマンドと関連付けられる任意データの長さに関する情報を保持する。後にこの文書中で４つのコマンドについて説明するが、その部分でこの概念についてより詳しく説明している。バイト５（３０６）は、リンクビット、フラグ、使用されていないビットの数から構成される情報、およびベンダ固有情報の制御タイプを保持する。
【００３３】
先に論じたように、ＳＰＴＣＣＰで使用される前述のＳＣＳＩコマンドコードそれぞれに、Ｃｄｂで作成される固有のエントリがあり、ケースによっては、コマンドと関連付けられたデータバッファ構造および応答構造も存在する。これらのエントリおよび構造の形式および内容がＳＰＴＣＣＰを定義する。したがって、ＭＳＣ装置との通信およびその制御のためのプロトコルをより完全に説明するには、Ｃｄｂバッファ内でどのようにコマンドが構造化されるか、および開始装置すなわちＰＣと、ターゲット装置すなわちＭＳＣの間でこれらの装置によってどのパラメータが提供されるかということの関連から、いくつかの固有のコマンドおよび応答について説明する必要がある。各コマンドと関連するＣｄｂの一般的な内容については詳細には説明しないが、プロトコルに対するその固有の機能および重要性のため、いくつかのパラメータについては解説する場合もある。当業者は、これらの仕様の変動は本発明の範囲内にあることを理解されよう。
【００３４】
ＭＳＣのこのようなコマンドの第１はＴｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙであり、これは固有の１６進数コード００Ｈで表される。このコマンドは、ターゲット装置がコマンド実行の準備ができているかどうかを報告する。先に説明したように、Ｃｄｂの最初の６バイトは固有のレイアウトでポピュレートおよび構造化されている。次のレイアウトは、このＴｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙコマンドと関連付けられたＣｄｂを表している。
【００３５】
【表２】
0004391712.tif 000003
【００３６】
非常に限られた応答を有し、またデータバッファを必要としないので、ＳＰＴＣＣＰではこれが最も単純なコマンドである。ベンダ関連のコマンドはまず必要ではないので、制御フィールドのバイト５はゼロにセットする。Ｔｅｓｔ  Ｕｎｉｔ  Ｒｅａｄｙは、装置がコマンド実行の準備ができていれば００Ｈ（良好）の状態コードを戻し、装置の準備ができていない場合は、０１Ｈ（状態確認）を戻す。
【００３７】
２番目のＭＳＣコマンドはＩｎｑｕｉｒｙであり、これは１６進数コード１２Ｈで表される。このコマンドは、この場合はＭＳＣであるターゲット装置に、装置製造者、モデル情報、通し番号、および他の類似の情報を識別するように要求する。この場合、Ｃｄｂの最初の６バイトは次のレイアウトでポピュレートおよび構造化される。
【００３８】
【表３】
0004391712.tif 000004
【００３９】
先に触れたように、本発明のプロトコルおよび方法は他の装置にも応用可能である。したがって、ここで説明する各種コマンドは、固有の装置にも適合させことができる。この例では、ＭＳＣ装置の場合、Ｉｎｑｕｉｒｙコマンドは２つの照会ケースとして実施することが推奨され、この場合上に示すレイアウト中の特定ビットを所定値にセットする。１つのケースは標準のクエリコマンドであり、バイト１のＢｉｔ０  ＥＶＰＤを０にセットし、バイト２のページコードも０にセットする。もう１つのケースはユニット通し番号コマンドであり、この場合ＥＶＰＤは１にセットし、ページコードは８０Ｈにセットする。
【００４０】
これらのコマンドケースはそれぞれ、ＭＳＣ装置から異なる応答を生成する。詳細には、標準クエリコマンドは次のデータ構造を有するデータバッファを戻す。
【００４１】
【表４】
0004391712.tif 000005
【００４２】
上記の構造中に示すフィールドの定義および意味が、標準ＳＣＳＩ２仕様に準拠することに留意されたい。ＳＣＳＩ２仕様の詳細は本願の範囲外であり、したがって詳細には説明しない。
【００４３】
ユニット通し番号コマンドの場合、戻されるページもＳＣＳＩ２仕様に準拠し、次のデータ構造を有する。
【００４４】
【表５】
0004391712.tif 000006
【００４５】
この場合も、戻されるデータ構造のレイアウトおよび内容は、本文書の範囲外にある標準によって規定される。上の図に含まれる情報の詳細およびその有用性は当業者に知られている。
【００４６】
第３のＭＳＣコマンドはＲｅｑｕｅｓｔ  Ｓｅｎｓｅであり、これは１６進数コード０３Ｈで表される。このコマンドは、ＰＣなどのイニシエータにエラー情報を報告させる。エラーは、現在のオペレーションまたは最も新しいオペレーションに関連する可能性がある。情報は、カメラなどのターゲット装置からイニシエータに転送される。
【００４７】
各種バイトの内容はターゲット装置に固有であり、受け取った情報の解釈を決定する。Ｃｄｂの最初の６バイトは、次のレイアウトでポピュレートおよび構造化されている。
【００４８】
【表６】
0004391712.tif 000007
【００４９】
要求はコマンドをターゲットに送ることによりセンス（検出，ｓｅｎｓｅ）する。ＭＳＣ＋装置からの応答はＳＣＳＩ−２仕様に準拠すべきであるが、実施の必要があるのはエラーコード７０ｈに対応するセンスデータだけである。ＳＰＴＣＣＰ装置の場合のセンスデータ形式を次の表に示す。
【００５０】
【表７】
0004391712.tif 000008
【００５１】
ゼロの有効ビットは、情報フィールドがＳＣＳＩ−２仕様で定義される通りではないことを示す。カメラ装置はまだＳＣＳＩ−２仕様に含まれておらず、この文書中では装置固有の情報フィールドを定義しないので、有効ビットはターゲットによってゼロにセットすべきである。
【００５２】
追加センスコードと追加センスコード修飾子の組合せは、エラー状態を示すのに使用される。ＳＰＴＣＣＰ固有コマンド（Ｅ０ｈ、Ｅ１ｈ、Ｅ２ｈ、ＤＦｈ）を発行する際、センスキーは９ｈに、追加センスコードは８０ｈにセットしてベンダ固有であることを表し、追加センスコード修飾子は次の表のように定義する。
【００５３】
【表８】
0004391712.tif 000009
【００５４】
第４のＭＳＣコマンドはＲｅａｄ  Ｉｎｆｏであり、これは１６進数コードＥ０Ｈで表される。このコマンドは、ＰＣなどのイニシエータが、カメラなどのターゲット装置からデータ転送を要求することを可能にする。このコマンドの場合、Ｃｄｂの最初の１０バイトは、次のレイアウトでポピュレートおよび構造化される。
【００５５】
【表９】
0004391712.tif 000010
【００５６】
ＳＣＳＩ  ＤａｔａＴｙｐｅＣｏｄｅは、イニシエータとターゲット間で転送されうる異なるタイプのデータを区別する。転送のタイプを次の表に指定する。
【００５７】
【表１０】
0004391712.tif 000011
【００５８】
データタイプ修飾子フィールドは、同じデータタイプコードのデータ転送を区別する手段を提供する。ＳＰＴＣＣＰ装置の場合、このフィールドが使用されるのは、データタイプコードが８１ｈまたは８２ｈであり、データタイプ修飾子がこの文書で後に挙げる装置プロパティコードと等しい場合だけである。
【００５９】
データバッファは、固有データタイプによって決定される形式でデータを含まなければならない。各装置プロパティコードに対応する固有データタイプも、この文書の次の章で挙げる。
【００６０】
【表１１】
0004391712.tif 000012
【００６１】
第５のＭＳＣコマンドはＳｅｎｄ  Ｄｉａｇｎｏｓｔｉｃであり、これは１６進数コード１ＤＨで表される。このコマンドは、ターゲットがそれ自体で診断動作を実行することを要求する。データ転送方向はイニシエータからターゲットである。Ｃｄｂの最初の６バイトは、次のレイアウトでポピュレートおよび構造化される。
【００６２】
【表１２】
0004391712.tif 000013
【００６３】
ＰＦビットは、パラメータがＳＣＳＩ−２規格に準拠していることを示し、ゼロはＳＣＳＩ−１に準拠していることを示す。
【００６４】
ＳｅｌｆＴｅｓｔビットは、ターゲットにそのデフォルトセルフテストを完了するように指示し、ゼロは、ターゲットがパラメータリストで指定される診断動作を実行することを要求する。
【００６５】
第６のＭＳＣコマンドはＷｒｉｔｅ  Ｉｎｆｏであり、これは１６進数コードＥ１Ｈで表される。Ｗｒｉｔｅ  Ｉｎｆｏコマンドは、転送データをイニシエータからターゲットに送信する。このコマンドは１０バイトＣＤＢを使用するように定義される。データ転送方向はイニシエータからターゲットである。Ｃｄｂの最初の１０バイトは、次のレイアウトでポピュレートおよび構造化される。
【００６６】
【表１３】
0004391712.tif 000014
【００６７】
ＳＣＳＩ  ＤａｔａＴｙｐｅＣｏｄｅ、データタイプ修飾子、およびデータバッファレイアウトは、上記のＲＥＡＤコマンドで定義するものと同じである。ＳＣＳＩ  ＤａｔａＴｙｐｅＣｏｄｅおよびデータタイプ修飾子がどちらも定義されているが、データ転送長がゼロにセットされている場合、このコマンドはその特定の装置プロパティのデフォルト値をリセットする。
【００６８】
第７のＭＳＣコマンドはＳｔａｒｔ  Ｓｔｏｐ  Ｃａｐｔｕｒｅであり、これは１６進数コードＥ２Ｈで表される。このコマンドは、ターゲット装置が、パラメータによって指定される方式に従って画像をキャプチャすることを要求する。このコマンドは１０バイトＣＤＢを使用するように定義される。データバッファは、ベンダが明確に定義する場合は、その転送方向をターゲットからイニシエータとする。Ｃｄｂの最初の１０バイトは次のレイアウトでポピュレートおよび構造化される。
【００６９】
【表１４】
0004391712.tif 000015
【００７０】
取り込みタイプコードは、ターゲットにおける取り込み機能の動作を定義する。
【００７１】
【表１５】
0004391712.tif 000016
【００７２】
取り込み形式コードは、ゼロでない場合は、装置にイニシエータが好む取り込み形式を勧める。ターゲットがその形式で取り込みを行えない場合、ターゲットはエラーを戻し、応答コードを「サポートされない操作」にセットする。取り込み形式コードがゼロの場合、ターゲットはそれのデフォルト形式で取り込みを行う。ＶＳＰビットおよびパラメータ４をクリアして、ベンダ固有のパラメータバッファがないことを示す。１のＶＳＰビットは、パラメータ４が有意味のベンダ固有パラメータバッファを有することを示す。このパラメータは、例えばベンダがそれを使用して、装置上の取り込んだピクチャファイルのステータスおよび位置を通信したい場合には有用である。
【００７３】
第８のＭＳＣコマンドはＲｅｓｅｔ  Ｄｅｖｉｃｅであり、これは１６進数コードＥ２Ｈで表される。このコマンドは、ターゲットがその状態をデフォルト状態にリセットすることを要求する。このコマンドは、６バイトＣＤＢを使用するように定義される。Ｃｄｂの最初の６バイトは、次のレイアウトでポピュレートおよび構造化される。
【００７４】
【表１６】
0004391712.tif 000017
【００７５】
これはデータバッファのないシンプルなコマンドである。
【００７６】
この文書の先述部分で、演算コード、応答コード、およびプロパティコードを参照した。この部分ではこれらのコードについて詳細を説明する。演算コードは主に、Ｍｏｄｅ  ＳｅｌｅｃｔコマンドおよびＭｏｄｅ  Ｓｅｎｓｅコマンドに関連する。ＭＳＣ装置にとって許容できる演算コードの数は限られている。いくつかのコードおよび関連付けられた演算を次に示す。
【００７７】
【表１７】
0004391712.tif 000018
【００７８】
応答コードに関して、ＳＰＴＣＣＰはＰＩＭＡ  ＰＴＰコマンドコードおよびデータタイプのサブセットを利用し、またそれ自体の選択および拡張を提供する。ＳＴＰＣＣＰ内の応答コードもＰＴＰ仕様から適合されるが、元の応答コードのサブセットしか使用されない。次の表は、現在ＳＴＰＣＣＰがサポートする応答コードと、それに関連する説明を示している。
【００７９】
【表１８】
0004391712.tif 000019
【００８０】
上記のコードに加えて、ＰＩＭＡ  ＰＴＰによってサポートされるその他の４つのコードカテゴリ、すなわち、イベントコード、装置プロパティコード、オブジェクト形式コード、およびデータタイプコードがある。これらのコードカテゴリはそれぞれ、ある種の情報を、イニシエート装置とターゲット装置間で入手し、交換することを可能にする。特定カテゴリがＳＰＴＣＣＰ内でサポートされても、あるいはサポートされなくとも、この説明ではこのようなカテゴリを識別するが固有のカテゴリの詳細は提供しない。というのも、この情報はＰＩＭＡ  １５７４０バージョン１．０デジタルスチル写真装置用の電子写真スチルピクチャ画像ピクチャトランスファープロトコルなど、ＰＴＰコマンドを定義する他のマテリアルにも見つけることができるからである。このソースおよびＰＴＰコマンドを定義する他の同様のソースは、この文書中に明白に取り込まれる。
【００８１】
ＳＰＴＣＣＰはＰＴＰとは異なり、イニシエータとターゲット間のイベント通信をサポートせず、したがってＳＰＴＣＣＰではイベントコードは定義されない。その一方で、先に説明したＤｅｖｉｃｅＰｒｏｐＣｏｄｅとしても知られる、装置プロパティコードが、ＳＰＴＣＣＰによりセットされるか、または取り出される可能性のあるターゲットのプロパティを記述する。次のコードおよび説明は、現在サポートされる装置プロパティコードの例示的なリストである。
【００８２】
【表１９】
0004391712.tif 000020
【００８３】
ＳＰＴＣＣＰは、ＰＴＰのデータオブジェクト概念をサポートしない。ただし、ＯｂｊｅｃｔＦｏｒｍａｔＣｏｄｅｓがＧｅｔＤｅｖｉｃｅＩｎｆｏ演算とともに使用され、画像記憶ファイル形式の情報を入手する。次の表は、サポートされていて利用可能なオブジェクト形式コードを示している。
【００８４】
【表２０】
0004391712.tif 000021
【００８５】
ＰＴＰ仕様からの別の適合は、データタイプコードである。ＳＰＴＣＣＰ内のデータタイプコードは、ＭＳＣ固有構造に対する拡張をいくらか含んでいる。すべてのデータタイプは、メモリ中でビッグエンディアンバイトオーダを使用する。次の表は、説明の目的で、サポートされるデータタイプコード、およびそれに関連する説明を示している。
【００８６】
【表２１】
0004391712.tif 000022
【００８７】
ＳＰＴＣＣＰでは、上の表に示す実数タイプは一般に、構造中で２部分として記憶される。分子および分母はこの構造のメンバである。実数の構造は次のように定義することができる。
【００８８】
ｔｙｐｅｄｅｆ  ｓｔｒｕｃｔ＿ＲＥＡＬ｛
ＵＩＮＴ３２      ｎｕｍｅｒａｔｏｒ；
ＵＩＮＴ３２      ｄｅｎｏｍｉｎａｔｏｒ；
｝ｓｔｒｕｃｔＲＥＡＬ；
【００８９】
上のデータタイプの表に示すように、重要な装置情報の記憶に使用されるもう１つのタイプは、先に説明したＧｅｔＤｅｖｉｃｅＩｎｆｏ演算により戻される構造である。この構造は可変長であるが、ベンダがこの構造のサイズを２６０−１６−１６＝２２８バイト以下に制限する本発明の実施形態では推奨される。これは、Ｗｉｎｄｏｗｓ(登録商標)の以前のバージョンが、ＩＯＣＴＬコマンドについて、データバッファサイズを２６０−１６に制限しており、またＳＣＳＩコマンドもモードページヘッダのために少なくとも１６バイトを必要とするからである。このプロトコルの他の実施形態ではバッファサイズ制限がないこともあるが、サイズを制限する行為は装置が後方互換性を得る助けとなる。装置情報構造は次のように定義することができる。
【００９０】
ｔｙｐｅｄｅｆ  ｓｔｒｕｃｔ＿ＤｅｖｉｃｅＩｎｆｏ｛
ＵＩＮＴ１６      ＳｔａｎｄａｒｄＶｅｒｓｉｏｎ；
ＵＩＮＴ３２      ＶｅｎｄｏｒＥｘｔｅｎｓｉｏｎＩＤ；
ＵＩＮＴ１６      ＶｅｎｄｏｒＥｘｔｅｎｓｉｏｎＶｅｒｓｉｏｎ；
ＳＴＲ            ＶｅｎｄｏｒＥｘｔｅｎｓｉｏｎＤｅｓｃ；
ＵＩＮＴ１６      ＦｕｎｃｔｉｏｎａｌＭｏｄｅ；
ＡＵＩＮＴ１６    ＯｐｅｒａｔｉｏｎＳｕｐｐｏｒｔｅｄ；／／ＯｐｅｒａｔｉｏｎＣｏｄｅ  Ａｒｒａｙ
ＡＵＩＮＴ１６    ＥｖｅｎｔｓＳｕｐｐｏｒｔｅｄ；／／ＥｖｅｎｔＣｏｄｅ  Ａｒｒａｙ
ＡＵＩＮＴ１６    ＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓＳｕｐｐｏｒｔｅｄ；／／ＤｅｖｉｃｅＰｒｏｐＣｏｄｅ  Ａｒｒａｙ
ＡＵＩＮＴ１６    ＣａｐｔｕｒｅＦｏｒｍａｔｓ；／／ＯｂｊｅｃｔＦｏｒｍａｔＣｏｄｅ  Ａｒｒａｙ
ＡＵＩＮＴ１６    ＩｍａｇｅＦｏｒｍａｔｓ；／／ＯｂｊｅｃｔＦｏｒｍａｔＣｏｄｅ  Ａｒｒａｙ
ＳＴＲ            Ｍａｎｕｆａｃｔｕｒｅｒ；
ＳＴＲ            Ｍｏｄｅｌ；
ＳＴＲ            ＤｅｖｉｃｅＶｅｒｓｉｏｎ；
ＳＴＲ            ＳｅｒｉａｌＮｕｍｂｅｒ
｝ｓｔｒｕｃｔＤｅｖｉｃｅＩｎｆｏ
この構造に必要とされる内容は、当業者にとっては上記で挙げた要素から自明である。
【００９１】
本発明について、制限的ではなく説明を目的とする例示的実施形態との関連で説明した。例えば、ＵＳＢ媒体上のＰＣのオペレーティングシステムから、マスストレージクラス（ＭＳＣ）デジタルカメラを制御するというコンテキストで本発明を説明した。プロトコルは、デジタルクラスストレージ装置とＰＣの間のネットワークケーブルまたは他の形態のコネクティビティなど、他の多くのタイプの通信媒体と容易に関連させることができる。
【００９２】
当業者には、図面を含めて本明細書を概観すれば本発明に属する代替実施形態が明らかになろう。したがって、本発明の範囲は前述の説明ではなく添付の請求項によって定義する。
【図面の簡単な説明】
【図１】本発明の実施に使用するのに適したコンピュータシステム環境のブロック図である。
【図２】アプリケーションプログラムとＵＳＢマスストレージクラス（ＭＳＣ）デジタルカメラ装置間の通信のアーキテクチャを表すブロック図である。
【図３】ＭＳＣにコマンドを送信するために利用するデータ構造の図である。
【符号の説明】
２０  コンピュータ
２２  処理装置
２４  システムメモリ
２６  システムバス
２８  ＲＯＭ
３０  ＲＡＭ
３２  ＢＩＯＳ
３４  ハードディスクドライブ
３６  磁気ディスクドライブ
３８  取り外し可能不揮発性磁気ディスク
４０  光ディスクドライブ
４２  取り外し可能不揮発性光ディスク
４４  ＳＣＳＩ
４６  オペレーティングシステム
４８  アプリケーションプログラム
５０  他のプログラムモジュール
５２  プログラムデータ
５４  キーボード
５６  ポインティング装置
５８  ユーザ入力インタフェース
６０  シリアルポートインタフェース
６１  モニタ
６２  ビデオアダプタ
６４  リモートコンピュータ
６６  ＬＡＮ
６８  ＷＡＮ
７０  ネットワークインタフェースまたはアダプタ
７２  モデム
２００  Ｗｉｎｄｏｗｓ(登録商標)エクスプローラ
２１２  マスストレージドライバ
２１４  ファイルシステムインタフェース
２２２  ＵＳＢ接続（ＵＳＢケーブル）
２２４  ＵＳＢマスストレージクラス（ＭＳＣ）デジタルカメラ
２２６  制御ファームウェア
２２８  ファイルシステム
２３０  制御システム
２５０  ユーザコンポーネント
２６０  カーネルコンポーネント
３００  Ｃｄｂ
３０１〜３０６  バイト
【図１】
0004391712.tif 000023
【図２】
0004391712.tif 000024
【図３】
0004391712.tif 000025