JP2010102500A - 印刷システム、情報処理装置及びその制御方法、並びにプログラム - Google Patents

印刷システム、情報処理装置及びその制御方法、並びにプログラム Download PDF

Info

Publication number
JP2010102500A
JP2010102500A JP2008273186A JP2008273186A JP2010102500A JP 2010102500 A JP2010102500 A JP 2010102500A JP 2008273186 A JP2008273186 A JP 2008273186A JP 2008273186 A JP2008273186 A JP 2008273186A JP 2010102500 A JP2010102500 A JP 2010102500A
Authority
JP
Japan
Prior art keywords
configuration
printing apparatus
name
information processing
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008273186A
Other languages
English (en)
Inventor
Katsuichi Sugano
勝一 菅野
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2008273186A priority Critical patent/JP2010102500A/ja
Publication of JP2010102500A publication Critical patent/JP2010102500A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】情報処理装置と印刷装置をUSBを用いて接続する構成において、プラグ・アンド・プレイ実行時に、デバイスドライバのインストールに失敗せず、不明な論理デバイスも発生しないようにする。
【解決手段】印刷装置が持つ正規のデバイス名称/構成とは異なるデバイス名称/構成として、前記情報処理装置上で稼動するオペレーティングシステムに標準で搭載されているデバイスドライバが適用可能なデバイス名称/構成を設定する偽名宣言手段と、前記情報処理装置が発行した変更指示に従って、前記印刷装置に搭載されている論理デバイスのうち利用可能な論理デバイスを用いた構成となるように前記USB上の論理デバイスの組み合わせを変更し、前記偽名宣言手段で設定されたデバイス名称/構成を前記正規のデバイス名称/構成に変更する名称変更手段とを備える。
【選択図】図12

Description

本発明は、情報処理装置や印刷装置等から構成される印刷システム、前記情報処理装置及びその制御方法、並びに前記制御方法を実現するためのプログラムに関する。
複数種類のPDL(Page Description Language)を備えて外部のコンピュータからの印刷データを印刷するための印刷機能を備える他に、画像を読み取るスキャナ機能を搭載した複合印刷装置は、従来より知られている。PDLは、プリンタが解釈できる印刷データ用の言語である。
この種の複合印刷装置では、外部のコンピュータとの接続形態として、Composite USB(Composite Universal Serial Bus、以下、複合USBと記す)を採用するものがある。この複合USBは、複合印刷装置においてUSBハブを用いないで複数の機能を搭載することができる点に特徴がある。
複合USBを採用した製品は、外部のコンピュータとUSBケーブルで接続してプラグ・アンド・プレイ機能を実行すると、複合印刷装置内部に各種機能を実現するために定義されている全ての論理デバイス(Logical Device)が順次出現してくる。したがって、接続するコンピュータに、前記各論理デバイスを制御する全てのデバイスドライバをインストールしないと、次のような問題が生ずる。即ち、インストール処理の最後でインストールが失敗した旨のメッセージがコンピュータのオペレーティングシステム(以下、OSと記す)上に表示され、更に不明な論理デバイスが認識されてしまう。
近年のコンピュータ技術の発達は目覚ましく、次々と新しいOSが登場してきている。このような新旧のOSが混在する環境においては、今まで使用されてきた旧OS上では利用できないデバイスドライバが存在する場合も出てきている。例えば、OS1が古くから存在するOSであり、このOS1ではPDL1デバイス用のデバイスドライバが利用できるが、もうじきその製品寿命に達すると見込まれているとする。このような場合に、PDLデバイスとしてPDL2デバイスが新しく登場してきたときには、PDL2デバイス用のデバイスドライバをOS1向けには作成しないなどのことが考えられる。
その結果、プラグ・アンド・プレイ実行時に必要となるデバイスドライバのうち、接続するコンピュータ上で稼動しているOSに対応しないデバイスドライバはインストールすることができず、上記のような問題が生ずることが危惧されている。
このような問題を解決するために、使用するOSの種類に応じて、複合USBを構成する論理デバイスの構成をダイナミックに変更できるような技術の登場が待望されていた。
論理デバイスの構成を変更する技術として、USBを使用してコンピュータに接続される複合機において、コンピュータからの指示により複合機のファンクションの構成を変更する技術が例えば特許文献1に開示されている。
特開2001−222503号公報
しかしながら、上記特許文献1の技術では、OSの種類に応じて、論理デバイスの構成を変更するということが考慮されていない。そのため、上述したように、プラグ・アンド・プレイ実行時には、接続するコンピュータ上で稼動しているOSに対応しないデバイスドライバをインストールすることができないケースが発生し、上記の問題は依然として未解決であった。
本発明は上記従来の問題点に鑑み、次のような、印刷システム、情報処理装置及びその制御方法、並びにプログラムを提供することを目的とする。即ち、情報処理装置と印刷装置をUSB等のローカルインターフェースを用いて接続する構成において、使用するOSの種類に応じて、論理デバイスの構成をダイナミックに変更することができるようにする。
また、プラグ・アンド・プレイ実行時に、デバイスドライバのインストールに失敗せず、不明な論理デバイスも発生しないようにする。
上記目的を達成するため、本発明は、ローカルインターフェースを用いて情報処理装置と印刷装置が接続される印刷システムにおいて、前記印刷装置が持つ正規のデバイス名称/構成とは異なるデバイス名称/構成として、前記情報処理装置で稼動するオペレーティングシステムに標準で搭載されているデバイスドライバが適用可能なデバイス名称/構成を設定する設定手段と、前記情報処理装置が発行した変更指示に従って、前記印刷装置に搭載されている論理デバイスのうち前記情報処理装置が利用可能な論理デバイスを用いた構成となるように論理デバイスの組み合わせを変更し、前記設定手段で設定されたデバイス名称/構成を前記正規のデバイス名称/構成に変更する名称変更手段とを備えたことを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置において、当該情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、前記判別手段の判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示手段とを備えたことを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置において、当該情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別手段の判別の結果に応じて実施させるための該判別の結果の通知を、前記印刷装置に対して発行する指示手段とを備えたことを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法であって、前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別工程と、前記判別工程の判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示工程とを有することを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法であって、前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別工程と、論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別工程の判別の結果に応じて実施させるための該判別の結果の通知を、前記印刷装置に対して発行する指示工程とを有することを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法を実行するための、コンピュータで読み取り可能なプログラムであって、前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別ステップと、前記判別ステップの判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示ステップとを有することを特徴とする。
また、本発明は、ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法を実行するための、コンピュータで読み取り可能なプログラムであって、前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別ステップと、論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別ステップの判別の結果に応じて実施させるための判別の結果の通知を、前記印刷装置に対して発行する指示ステップとを有することを特徴とする。
本発明によれば、使用するOSの種類に応じて、論理デバイスの構成をダイナミックに変更することが可能になる。これにより、プラグ・アンド・プレイ実行時に、デバイスドライバのインストールに失敗せず、不明な論理デバイスの発生を防ぐことができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
[第1の実施の形態]
<印刷システムの構成>
図1は、本発明の実施の形態に係る印刷システムの構成を示すブロック図である。
図1に示すように、この印刷システムは、実施の形態に係る情報処理装置であるクラインアントコンピュータ(以下、単にコンピュータと記す)4000と複合印刷装置5000とを備えている。
まず、コンピュータ4000の構成について説明する。コンピュータ4000の制御部4100は、システムバス4に接続される各構成デバイスを総括的に制御するCPU1を備えている。上記構成デバイスとして、RAM2、ROM3、キーボードI/F(インターフェース)5、ディプレイI/F6、外部メモリI/F7、及びプリンタI/F8が配設されている。また、CPU1は、ROM3のプログラム用ROM、或いは外部メモリ11に記憶された文書処理プログラム等に基づいて、図形やイメージ、文字、表(表計算等を含む)等が混在した文書処理を実行する。
ROM3のプログラム用ROM或いは外部メモリ11は、CPU1の制御プログラムであるオペレーティングシステム(OS)プログラム等を記憶し、ROM3のフォント用ROM或いは外部メモリ11は、上記文書処理の際に使用するフォントデータ等を記憶する。ROM3のデータ用ROM或いは外部メモリ11は、上記文書処理等を行う際に使用する各種データを記憶する。
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。キーボードI/F5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。ディプレイI/F6は、ディスプレイ10の表示を制御する。外部メモリI/F7は、外部メモリ11とのアクセスを制御する。
外部メモリ11は、ブートプログラムや、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶するメモリである。これは、例えばハードディスク(HD)や、フロッピー(登録商標)ディスク(FD)、コンパクトディスク(CD)等から構成されている。プリンタI/F8は、USBケーブル3000を介して複合印刷装置5000に接続されて、複合印刷装置5000との通信制御処理を実行する。尚、プリンタI/F8に接続されるケーブルは、USBケーブルに限らず、その他のローカルインターフェースケーブルであっても構わないが、本実施例では、USBケーブルを例に説明する。
また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
次に、複合印刷装置5000の構成について説明する。複合印刷装置5000の制御部5100は、システムバス54に接続される各構成デバイスを総括的に制御するCPU51を備えている。上記構成デバイスとして、RAM52、ROM53、入出力部55、印刷部I/F56、外部メモリI/F57、及びスキャナI/F58が配設されている。
CPU51は、ROM53のプログラム用ROMに記憶された制御プログラム等或いは外部メモリ60に記憶された制御プログラム等に基づいて、印刷部I/F56に接続されている印刷部59に出力情報としての画像信号を出力する。印刷部59は、プリンタ機能を実現するための印刷機構である。
また、ROM53のプログラムROMには、CPU51の制御プログラム等を記憶する。ROM53のフォント用ROMは、上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM53のデータ用ROMは、外部メモリ60を設けない印刷装置の場合には、コンピュータ4000上で利用される情報等を記憶している。
CPU51は、入出力部55を介してコンピュータ4000との通信処理が可能となっており、複合印刷装置5000の情報等をコンピュータ4000に通知可能に構成されている。RAM52は、CPU51の主メモリ、ワークエリア等として機能する。外部メモリ60は、ハードディスク(HD)、ICカード等から成り、外部メモリI/F57によりアクセスを制御される。
また、操作部61は、操作のためのスイッチ及びLED表示器等が配され、大型液晶表示装置を備えたタッチパネルになっている。読み取り部62は、スキャナ機能を実現する原稿読み取り装置であり、スキャナI/F58を介して、システムバス54に読み込んだデータを転送する。
<本実施の形態の特徴を成す構成>
図2は、本発明の実施の形態に係る特徴的な処理を示す基本構成図である。
複合印刷装置5000は、偽名宣言部202、デバイス名称/構成203、及びデバイス名称変更部204を備えていることを特徴とし、それらは図1のROM53の内部に存在する。偽名宣言部202は、正規のデバイス名称(つまり製品本来の名称)とは異なるデバイス名称/構成を名乗り、それをデバイス名称/構成203とする処理を行う。
ここに述べる製品とは、USBによってコンピュータ4000に接続されるデバイス(装置:印刷デバイスや印刷デバイス以外のデバイス)、つまり図2の例では印刷デバイスである複合印刷装置5000ということになる。また、デバイス名称/構成とは、コンピュータ4000上で稼動するOSから複合印刷装置5000を認識することのできる名称のことであり、DeviceIDとも言う。以下特に断りのない限り、デバイス名称/構成(或いはDeviceID)と示されるものは、USBのインターフェース上での事項となる。
デバイス名称変更部204は、コンピュータ4000から複合印刷装置5000へ送られてきた名称変更指示に従いデバイス名称/構成203を変更する処理を行う。
一方、コンピュータ4000は、名称変更指示部211を備えていることを特徴とし、それは図1のROM3の内部に存在する。名称変更指示部211は、コンピュータ4000で稼動しているOSの種類に応じて前記名称変更指示を作成して、複合印刷装置5000へ送信する処理を行う。
複合印刷装置5000をUSBを使ってコンピュータ4000に接続すると、コンピュータ4000は、複合印刷装置5000に対してデバイス名称/構成を返答するように要求する。その結果、複合印刷装置5000からこの製品のデバイス名称/構成がコンピュータ4000に返信される。そして、このデバイス名称/構成に従ってプラグ・アンド・プレイ機能が実行され、コンピュータ4000上でデバイスドライバのインストール処理が行われる。
<プラグ・アンド・プレイの仕組み>
次に、プラグ・アンド・プレイ機能の仕組みについて、図3を参照して説明する。
図3(a),(b)は、プラグ・アンド・プレイの仕組みを説明するためのデータ類を示す表形式図であり、同図(a)はIEEE1284で規定されているデバイス情報を示し、同図(b)はドライバプログラムの一例を示している。
図3(a)に示すように、IEEE1284で規定されているデバイス情報は、Class902、MFC(製造者名)903、MDL(製品モデル)904、及びCMD(コマンド)905で構成される。
コンピュータ4000の外部メモリ11の一時領域などに格納されているドライバプログラムは、図3(b)に示すように、ドライバインストール時に参照される固有情報を記述したinfファイルと、各種実行モジュールと、リソースによって構成される。
プリンタドライバのInfファイルの中には、プラグ・アンド・プレイ時に参照されるデバイス名称/構成が記述されている。このデバイス名称/構成は、図3のMFC903とMDL904を組み合わせて構成されるものと一致する値が記載されている。スキャナドライバのinfファイルの中には、USBの構成として複合印刷装置5000のプログラムROM53上に定義されているVendorID(製造者ID)とProductID(製品ID)とインターフェース番号とが一致する値が記述されている。VendorID(製造者ID)とProductID(製品ID)については後述する。
複合印刷装置5000のUSBケーブル21をコンピュータ4000に接続すると、コンピュータ4000は複合印刷装置5000に対して、後述する図4の各種インターフェースの情報を要求し、複合印刷装置5000はそれを返答する。
コンピュータ4000は、その受け取ったインターフェースの情報がスキャナ機能である場合にはVendorID(製造者ID)とProductID(製品ID)とインターフェース番号を複合印刷装置5000から入手する。そして、これら情報に一致する情報が記載されているinfファイルを外部メモリ11の一時領域に格納されているinfの中から探索する。なお、VendorID(製造者ID)とProductID(製品ID)は、製品単位に付くものなので、後述する図4の303から305で示す全てのインターフェース間で共通の値となる。
複合印刷装置5000から受け取ったインターフェースの情報がプリンタ機能である場合は、IEEE1284に準拠したデバイス名称/構成を複合印刷装置5000から入手する。そして、これに一致する情報が記載されているinfファイルを同じ外部メモリ11の一時領域に格納されているinfの中から探索する。このようにして、スキャナ機能やプリンタ機能などの論理デバイスに対応したドライバを正確に対応付けてインストールすることが可能となっている。
<USBの構成>
図4は、複合USBの構成の一例を示す概念図である。
図4の301が複合印刷装置5000全体の複合USBを示している。その中にコンフィギュレーション302が1つ存在し、更にその中に複数のインターフェース303、304、305が存在する。そして、この個々のインターフェース303〜305が複合印刷装置5000が搭載する複合的な機能(例えば、スキャナ機能やプリント機能)を構成する個々の要素になっている。図4の303がスキャナ機能を実現するための論理デバイス、304がプリンタ機能を実現するためのPDL1の論理デバイス、305がPDL2の論理デバイスを示している。
複合USBを採用した複合印刷装置5000をコンピュータ4000にUSBケーブル21で接続すると、インターフェース303〜305が1ずつコンピュータ4000に通知される。その個々のインターフェース303〜305についてプラグ・アンド・プレイが発生し、その都度ドライバのインストール処理が実施されることとなる。
図5は、複合USBの構成の他の例を示す概念図である。
図5の801が複合印刷装置5000全体の複合USBを示している。その中にコンフィギュレーション802が1つ存在し、更にその中にインターフェース803が1つだけ存在している。この例は、複合USBのインターフェースが、PDLとして単一のPDL1という論理デバイスだけを備えた状態の単機能プリンタの構成と同じである。
図4のUSB構成が正規のデバイス名称/構成を示し、図5のUSB構成が偽名宣言部202でデバイス名称/構成203として設定するデバイス名称/構成として捉えることもできる。
図2の偽名宣言部202は、正規の(製品本来の)デバイス名称/構成とは異なるデバイス名称/構成を名乗り、それをデバイス名称/構成203とすることを示している。この時、正規のデバイス名称/構成と異なるデバイス名称/構成というのは、どんな名称/構成でも良いわけではなく、コンピュータ4000上で稼動するOSが標準で保持しているデバイスドライバが適用可能なデバイス名称/構成のうちのいずれかを名乗る。そうすることによりプラグ・アンド・プレイ機能の結果、ドライバソフトを提供せずとも、OSが標準で保持しているデバイスドライバが自動的に利用されてコンピュータ4000にインストールされることになる。
偽名宣言部202は、これを目的としており、デバイスドライバが自動的にコンピュータ4000にインストールされることにより、コンピュータ4000と複合印刷装置5000がデータのやり取りをする経路を確保することが可能となる。
<実施の形態の背景的な概念>
上述したように、コンピュータ4000における名称変更指示部211は、コンピュータ4000で稼動しているOSの種類に応じて名称変更指示を作成して、複合印刷装置5000に送信する。ここで、OSの種類に応じて複合印刷装置5000に名称変更指示を送る理由について、図6を参照して説明する。
図6(a),(b)は、実施の形態の背景的な概念を説明するための説明図であり、同図(a)は複合印刷装置の複合USBの一構成例を示し、同図(b)はコンピュータのOSと対応するデバイスドライバの一例を示している。
図6(a)の410は複合印刷装置を示しており、図1の複合印刷装置5000と同じものである。複合印刷装置410の中には、1つのコンフィギュレーション411が存在し、さらにその中には、3つの論理デバイス412、413、414が存在している。即ち、それは、インターフェース0であるScannerという論理デバイスと、インターフェース1であるPDL1という論理デバイスと、インターフェース2であるPDL2という論理デバイスである。
また、図6(a)の401はコンピュータAであり、図1のコンピュータ4000と同じものである。このコンピュータAのRAM2上では、OS1が稼動している。図6(a)の420はコンピュータBであり、図1のコンピュータ4000と同じものである。このコンピュータBのRAM2上では、OS2が稼動している。
本例では、図6(b)で示すように、Scannerという論理デバイス用のデバイスドライバは、OS1とOS2のいずれにも用意されている。同じく、PDL1という論理デバイス用のデバイスドライバもOS1とOSのいずれにも用意されている。しかし、PDL2という論理デバイス用のデバイスドライバはOS1には用意されず、OS2にのみ用意されている。
したがって、この図6(b)の例に従うと、コンピュータAと接続する場合においては、複合印刷装置410は、複合USBを構成する論理デバイスとして、次のような構成であることが望ましい。即ち、Scannerという論理デバイスを備えるほか、PDLに関してPDL1という論理デバイスだけを備えた状態になっている複合印刷装置であることが望ましい。つまり、スキャナ装置と、PDL1だけが適用可能な印刷装置とを搭載した複合印刷装置であることが望ましい。
また、コンピュータBと接続する場合においては、複合印刷装置410は、複合USBを構成する論理デバイスとして、次のような構成であることが望ましい。即ち、Scannerという論理デバイスを備えるほか、PDLに関してPDL1及びPDL2という論理デバイスを備えた状態になっている複合印刷装置であることが望ましい。つまり、スキャナ装置と、PDL1及びPDL2が適用可能な印刷装置とを搭載した複合印刷装置であることが望ましい。
このような点を考慮して、本発明の実施の形態では、コンピュータ4000がOSの種類に応じて複合印刷装置5000に名称変更指示を送るように構成したものである。
・本発明を適用していない複合印刷装置の例1
次に、複合印刷装置410は当発明を適用していない複合印刷装置であるとして、その場合の問題点を明確にするための処理フローについて、図7を参照して説明する。
図7は、本発明を適用していない複合印刷装置の処理フローの第1の例を示すフローチャートである。即ち、複合USBのインターフェースが、Scannerという論理デバイスと、PDLとしてPDL1及びPDL2という論理デバイスを備えた状態になっている複合印刷装置410を、コンピュータAに接続する場合の処理フローの例を示している。
本例の複合印刷装置410は、本発明を適用していないので、そのデバイス名称/構成は、正規のデバイス名称/構成である。コンピュータAは、RAM2上でOS1が稼動している。
まず図7のステップS504で、CPU1が外部メモリ11に格納されているドライバセットアッププログラム(複合印刷装置410に対応したもの)を起動する。次のステップS505において、CPU1は、ドライバセットアッププログラムがOS1上で起動されたのか否かを判断する。Yesの場合つまりOS1上で起動された場合はステップS506へ進み、Noの場合はステップS507へ進む。
ステップS506では、ドライバセットアッププログラムを起動したOSがOS1であることが明らかになったので、CPU1は次の処理を実行する。即ち、Scannerという論理デバイスとPDL1という論理デバイスのドライバモジュール類をコンピュータAの外部メモリ11上に展開する。そして、CPU1の処理はステップS508へ進む。
なお、ステップS507は、ドライバセットアッププログラムを起動したOSがOS2であることが明らかになった場合の処理である。この場合には、CPU1は、Scannerという論理デバイスと、PDL1及びPDL2という論理デバイスのドライバモジュール類をコンピュータAの外部メモリ11上に展開し、ステップS508へ進む。本例では、コンピュータAのRAM2上でOS1のみが稼動しているとしているので、ステップS507は実施されない。
ステップS508では、複合印刷装置410をUSBケーブルにてコンピュータAに接続した後、コンピュータAから、デバイス名称/構成等の返答要求が出され、その要求に複合印刷装置410のCPU51が返答する。その後、コンピュータAのCPU1の処理はステップS509へ進む。
ステップS509では、プラグ・アンド・プレイが発生し、複合印刷装置410から、Scannerという論理デバイスと、PDL1及びPDL2という論理デバイスが存在することが通知される。そして、前記ステップS506で外部メモリ11上に展開した、ScannerとPDL1という論理デバイスのドライバモジュール類がOS1により発見されてインストールされる。但し、ステップS509では、PDL2という論理デバイスのドライバモジュールが無いので、このドライバモジュールはインストールされない。
次のステップS510では、コンピュータAのCPU1は、ステップS509でドライバモジュールがインストールされなかったPDL2という論理デバイスのデバイスドライバをOS1から要求する。この要求は、図1のCRT10上にメッセージという形で表示され通知される。
続くステップS511では、OS1に対応したPDL2のデバイスドライバというものがコンピュータAに存在しないので、CPU1は対処できない。この場合、CRT10上に表示されるメッセージに対して、処理を先へ進める。
次のステップS512において、CRT10上に表示されるメッセージに対して、デバイスドライバを提供せずに処理を先へ進めた結果、最後には“インストールに失敗しました”というメッセージがCRT10上に表示される。
その後のステップS513では、最終的に、PDL2という論理デバイスがOS1にとって不明な論理デバイスとして認識されてしまう。
この一連のフローの中で、ステップS511、S512、S513が問題点であり、複合印刷装置5000が保持している機能である、PDL2を利用した印刷機能がOS1上で利用できないことが明確になっている。OS1で利用可能なPDL2という論理デバイスのデバイスドライバが存在しないので、本来ならば始めからOS1に対しては、PDL2による機能が無いように振る舞っていれば、このような問題は発生しないのである。
・本発明を適用していない複合印刷装置の例2
複合印刷装置410は当発明を適用していない複合印刷装置であるとして、この複合印刷装置410を、OS1が稼動しているコンピュータAにUSBによって接続する場合には、次のことが必要となる。即ち、複合印刷装置410の複合USBのインターフェースが、Scannerという論理デバイスを備えると共に、PDLとしてPDL1という論理デバイスだけを備えた状態になっている必要がある。この点について、図8を参照して説明する。
図8は、本発明を適用していない複合印刷装置の処理フローの第2の例を示すフローチャートである。即ち、複合USBのインターフェースが、Scannerという論理デバイスと、PDLとしてPDL1という論理デバイスだけを備えた状態になっている複合印刷装置601を、コンピュータAに接続する場合の処理フローの例を示している。
複合印刷装置601は、当発明を適用していないので、デバイス名称/構成は、正規(製品本来)の名称/構成であり、図1の複合印刷装置5000と同じものである。コンピュータAは、RAM2上でOS1が稼動している。
本例において、ステップS604からステップS608までの処理は、それぞれ前述した図7のステップS504からステップS608までの処理と同じである。
ステップS608の処理後のステップS609では、プラグ・アンド・プレイ機能が発生する。その結果、複合印刷装置601から、複合USBのインターフェースとして、Scannerという論理デバイスが存在すると共に、PDLに関してPDL1という論理デバイスだけが存在することが通知される。そして、外部メモリ11上に展開した、Scannerという論理デバイスとPDL1という論理デバイスのドライバモジュール類が、OS1により発見されてインストールされる。本例の場合、これで処理が正常に終了しており、何のエラーも発生していない。
したがって、複合印刷装置を、OS1が稼動するコンピュータAに接続する場合には、上記のような処理から次のことが分かる。即ち、複合印刷装置の複合USBのインターフェースが、Scannerという論理デバイスを備え、PDLに関してはPDL1という論理デバイスだけの構成になっていれば、正常に処理が完了することが分かる。
・本発明を適用していない複合印刷装置の例3
複合印刷装置701は当発明を適用していない複合印刷装置5000であるとして、この複合印刷装置701を、OS2が稼動しているコンピュータBにUSBによって接続する場合には、次のことが必要となる。即ち、複合印刷装置701の複合USBのインターフェースが、Scannerという論理デバイスを備えると共に、PDLとしてPDL1及びPDL2という論理デバイスを備えた状態になっている必要がある。この点について、図9を参照して説明する。
図9は、本発明を適用していない複合印刷装置の処理フローの第3の例を示すフローチャートである。即ち、複合USBのインターフェースが、Scannerという論理デバイスと、PDLとしてPDL1及びPDL2という論理デバイスを備えた状態になっている複合印刷装置701を、コンピュータBに接続する場合の処理フローの例を示している。
複合印刷装置701は、当発明を適用していないので、デバイス名称/構成は、正規の名称/構成であり、図1の複合印刷装置5000と同じものである。コンピュータBは、RAM2上でOS2が稼動している。
本例において、ステップS704からステップS708までの処理は、それぞれ前述した図7のステップS504からステップS608までの処理と同じである。但し、本例では、コンピュータBで稼動するOS2上で動作させているので、ステップS706は実施されず、ステップS707が実施される。
ステップS708の処理後のステップS709では、プラグ・アンド・プレイ機能が発生する。その結果、複合印刷装置5000から、複合USBのインターフェースとして、Scannerという論理デバイスが存在すると共に、PDLに関してPDL1及びPDL2という論理デバイスが存在することが通知される。そして、外部メモリ11上に展開した、Scannerという論理デバイスとPDL1及びPDL2という論理デバイスのドライバモジュール類が、OS2により発見されてインストールされることになる。本例の場合、これで処理が正常に終了しており、何のエラーも発生していない。
したがって、複合印刷装置をOS2が稼動するコンピュータBに接続する場合には、上記のような処理から次のことが分かる。即ち、複合印刷装置の複合USBのインターフェースが、Scannerという論理デバイスを備え、PDLに関してはPDL1及びPDL2という論理デバイスを備えた構成になっていれば、正常に処理が完了することが分かる。
以上説明したように、OS1かOS2のどちらかへの対応を主な使い方とすると決めて、複合印刷装置における複合USBのインターフェースのデバイス名称/構成を決める場合、次のような問題が発生する。即ち、決めた方と異なるOSへの接続を行う場合には、不明な論理デバイスが発生するか、本来利用可能な論理デバイスが使えないといった問題が発生することになる。
<USBのデバイスディスクリプタ>
次に、図10を参照して、USBのデバイスディスクリプタについて説明する。
図10は、USBのデバイスディスクリプタの一例を示した表形式図である。
USBでは、デバイス(装置)の情報をコンピュータに伝えるために、5つのディスクリプタと呼ばれる情報を持っている。図10に示すものは、そのうちのデバイスディスクリプタを示している。
このデバイスディスクリプタの内の「bDeviceClass」がクラスコードと呼ばれ、USB上のどういう種類のデバイスであるかを示すコードとなっている。マウスやキーボードなどの人とのインターフェースを司るデバイスはHIDデバイスと呼ばれ、「0x03」という値を持つ。印刷装置の場合は「0x07」という値を持ち、ハードディスクやメモリなどの場合は「0x08」という値を持つ。
プラグ・アンド・プレイのときに、この値により印刷装置であると分かった場合、コンピュータは、デバイスに対してデバイスIDを返答するように要求を出す。その結果として、デバイスは、図3のMFC903とMDL904を結合したデバイスIDという文字列をコンピュータに対して返答する。なお、ここで言うデバイスIDとは、これまでに述べてきたデバイス名称/構成と同じものである。
図10の「IDVendor」は、デバイスの製造者のIDであり、この値はUSBの規定で各製造者毎に一意に決まっている。なおこれは、VendorID(製造者ID)として前述している。「idProduct」はプロダクトIDと呼び、デバイスの製造者が独自に決めてよい値である。なおこれも、ProductID(製品ID)として前述している。この値は、デバイスの製造者がその製造者の中で一意となるように値を管理して、製品毎に一意の値になるように設定する。この2つの値をまとめるとUSB機器を一意に特定することができる。
<第1の実施の形態の特徴を成す処理>
次に、第1の実施の形態の特徴を成す処理として、偽名宣言部202、デバイス名称変更部204、及び名称変更指示部211を用いた処理について、図11及び図12を参照して説明を行う。なお、処理を簡略化するために、対象となるOSをOS1とOS2しか記載していないが、本発明はOS1とOS2に限定するものではない。
本処理で使用する複合印刷装置5000は、複合USBのインターフェースが、Scannerという論理デバイスを備えると共に、PDLとしてPDL1及びPDL2という論理デバイスを備えた状態となっている複合印刷装置である。
偽名宣言部202により、デバイス名称/構成203は、正規のデバイスの名称ではなく、コンピュータ4000上で稼動しているOSが標準でドライバを持っているデバイス名称/構成が適用可能なデバイス(旧製品)の名称が設定されている。この旧製品であるデバイスは印刷装置でも良いし、ストレージ装置でも、マウスなどの装置でも良い。但し、図10に示した「IDVendor」と「IDProduct」は、正規のデバイス(複合印刷装置5000)が持つ値をそのまま持たせておく。また、この場合のOSというのは、この実施の形態で言うとOS1とOS2の両方ということになるが、本発明はOS1とOS2に限定するものではない。また、コンピュータ4000のRAM2上ではOS1もしくはOS2が稼動しているものとする。
図11及び図12は、第1の実施の形態の特徴を成す処理を示すフローチャートである。
まず、ステップS1004では、コンピュータ4000のCPU1が外部メモリ11に格納されているドライバセットアッププログラム(複合印刷装置5000に対応したもの)を起動する。次のステップS1005では、CPU1がRAM2上にて、ドライバセットアッププログラムがOS1上で起動されたのか否かを判断する。Yesの場合はステップS1006へ進み、Noの場合はステップS1007へ進む。
ステップS1006では、ドライバセットアッププログラムを起動したOSがOS1であることが明らかになったので、CPU1は次のような処理を行う。即ち、Scannerという論理デバイスとPDL1という論理デバイスのドライバモジュール類をコンピュータ4000上の外部メモリ11上に展開し、ステップS1008へ進む。
ステップS1007では、ドライバセットアッププログラムを起動したOSがOS2であることが明らかになったので、CPU1は、次のような処理を行う。即ち、Scannerという論理デバイスと、PDL1という論理デバイスと、PDL2という論理デバイスのドライバモジュール類をコンピュータ4000上の外部メモリ11上に展開し、ステップS1008へ進む。
ステップS1008では、CPU1がRAM2上においてドライバセットアッププログラムに包含される旧製品監視処理を起動する。その結果、旧製品監視処理という別の処理がRAM2上でスタートする(ステップS1010)。この旧製品監視処理は、次回以降はOSの起動時に自動的に起動されるようにOSのサービスとして登録するか、もしくはスタートアッププログラムとして登録しておく。
ここで、旧製品監視処理の意義について説明する。ステップS1006またはステップS1007の後、コンピュータ4000が即座に複合印刷装置5000とUSBによる接続の確認がとれる保障はどこにもない。本発明が処理を完結させるためには、ステップS1006またはステップS1007の後、OSが標準でドライバを持っているデバイス名称/構成の装置がUSBにて接続される必要がある。そして、プラグ・アンド・プレイ機能でOSが標準で持っているデバイスドライバ、つまり旧製品のデバイスドライバがインストールされる必要があるので、別処理として旧製品監視処理を起動している。
ステップS1009では、複合印刷装置5000をUSBケーブル3000にて、コンピュータ4000に接続した後、コンピュータ4000から、デバイス名称/構成等の返答要求が出され、その要求にCPU51が返答する。その後ステップS1011へ進む。
ステップS1011では、複合印刷装置5000からデバイス名称/構成等が返信され、その情報に従ってプラグ・アンド・プレイ機能が発生する。これによって、コンピュータ4000に接続された装置(複合印刷装置5000)が、OSが標準でドライバを持っているデバイス名称/構成の装置であると認識され、旧製品のデバイスドライバが自動でインストールされる。
例えば複合印刷装置5000が、OSが標準でドライバを持っている印刷装置を名乗っている場合には、図3のMFC903とMDL904から作成されるデバイス名称/構成をキーにして、OSのデバイスドライバを外部メモリ11上から探索する。そして、対象となるデバイスドライバをインストールする。また、複合印刷装置5000が、OSが標準でドライバを持っているストレージ装置を名乗っている場合には、USBのクラスコードをキーにして、Genericドライバを探索し、対象となるデバイスドライバをインストールする。
ここで重要なことは、この時点では、ステップS1006やステップS1007でコンピュータ4000の外部メモリ11上に展開されたドライバモジュールは利用されないという点である。ここで利用されるのは、OSが標準で持っているドライバ(InBox Driver)である。ここで、上記した 旧製品とは、OSがInBox Driver用意している機種である。
このInBox Driverが自動でインストールされることにより、複合印刷装置5000とコンピュータ4000との間にデータのやり取りをする経路を作成することが可能となる。その結果、複合印刷装置5000は、コンピュータ4000上のOSから指示を受けることができるようになる。
次に、ステップS1008によって起動された旧製品監視処理はステップS1012に処理を移す。ステップS1012においてCPU1は、旧製品監視処理により、図10の「idVendor」と「idProduct」が製品本来が持つ値のままとなっている装置がコンピュータ4000に接続されているか否かを監視する。つまり、本実施の形態では複合印刷装置5000がコンピュータ4000に接続されているか否かを監視する。接続されていなければ、再度ステップS1012に戻り、接続されるまで待ち続ける。接続された場合にはステップS1013に処理を移す。
次のステップS1013では、CPU1は、接続の確認のとれた複合印刷装置5000の現在のデバイス名称/構成を問い合わせる。その際にUSBのベンダーリクエストを用いて問い合わせを行う。
ここで、図13及び図14を参照して、USBのリクエストについて説明する。
図13及び図14は、USBのデバイスリクエストの構成を示した表形式図である。
図13の1101は、デバイスリクエストの構成を示し、「bmRequestType」から「wLength」までの合計8Byteで1つのリクエストを構成している。デバイスリクエストには、標準のリクエストと、USBクラスに応じたリクエストと、デバイスの製造者が独自に仕様を決めることのできるベンダーリクエストがある。「bmRequestType」に与える値で、この種類を切り替えることができる。
図13の1102は、現在のデバイス名称/構成をデバイスに問い合わせる(デバイスに返答させる)ためのリクエストの一例である。「bmRequestType」の0xD1がデバイスに返答させるベンダーリクエストを示している。「bRequest」の0x10は現在のデバイス名称/構成を問い合わせていることを示す一例である。この値は一例であり、現在のデバイス名称/構成の問い合わせを示す値はこれに限るものではない。「wLenght」の0x01がデバイスが戻す値のサイズを示した一例である。なお、このサイズも0x01に限るものではない。
この図13の1102で示したUSBベンダーリクエストをコンピュータ4000から複合印刷装置5000に送信することで、現在のデバイスのデバイス名称/構成の問い合わせを行っている。
図13の1103がデバイスからコンピュータ4000に返信する返答を示した一例である。この例では1バイトを8つのビット(ビット7からビット0)に区切って、それぞれに意味を持たせた例を示している。ビット0と1の2桁で偽名を宣言中なのか或いは正規デバイスの名称/構成を宣言中なのかを表す。ビット2が1の場合、PDL1がActiveで0の場合Inactiveであることを示している。以下同様にビット2から5もそれぞれPDL2からPDL4の状態を示している。なお、本実施の形態ではPDL1とPDL2しか取り上げていないが、本発明がこれ以外のPDLへも対応できることの一例を示している。ビット6でスキャナの状態を示しており、1の場合スキャナがActive、0の場合スキャナがInactiveであることを示す。そしてビット7は予備であり、通常その値は不定である。
なお本発明は、ここで示したビットの意味合いを使って各PDLの状態を示すという方式にとらわれるものではない。例えば1102の「wLength」をもっと長く設定して、もっと長いデータ列が返答されるようにしても良い。その場合にはこの1103の構造もその長いデータ列に合わせて変更すれば良い。
例えばデバイスが偽名宣言中である場合は、00000000B=0x00 という値がデバイスから返答される。また、正規デバイス宣言中であり且つScannerとPDL1がActiveである場合は、01000101B=0x45 という値が返答される。更に正規デバイス宣言中であり且つScannerとPDL1とPDL2がActiveである場合は、01001101B=0x4D という値が返答される。
図12に戻り、ステップS1014では、コンピュータ4000がUSBのベンダーリクエストを用いて問い合わせてきた現在のデバイス名称/構成を複合印刷装置5000のCPU51が返答する。
次のステップS1015において、CPU1は、旧製品監視処理がOS1上で稼動しているか否かを確認する。Yesの場合はステップS1016、Noの場合はステップS1017へ進む。
ステップS1016では、ステップS1014で返答された複合印刷装置5000からの回答が、正規デバイスを宣言中であり且つScannerとPDL1がActiveであることを示しているか否かを確認する。Yesの場合では、idVendorとidProductの値がその製品本来が持つ値となっている複合印刷装置5000が、正規のデバイス名称を宣言中であり且つScannerとPDL1がActiveになっているということである。
したがって、複合USBのインターフェースの状態は、複合印刷装置5000を、OS1が稼動するコンピュータ4000に接続する場合の目的の状態になっているということが言える。このような状態は、デバイス名称/構成を製品本来の正規なものに変更した後で、OSの再起動などを行った場合に発生し得る。この場合、何もすることがないのでステップS1024へ進んで処理を終了させる。ステップS1016でNoの場合は、ステップS1018へ進む。
ステップS1017では、ステップS1014で返答された複合印刷装置5000からの回答が正規のデバイス宣言中で且つScannerとPDL1とPDL2であるか否かを確認する。Yesの場合は、idVendorとidProductの値がその製品本来が持つ値の複合印刷装置5000が、正規のデバイス名称を宣言中であり且つScannerとPDL1とPDL2がActiveになっているということである。
したがって、複合USBのインターフェースの状態は、複合印刷装置5000を、OS2が稼動するコンピュータ4000に接続する場合の目的の状態になっているということが言える。このような状態は、デバイス名称/構成を製品本来の正規なものに変更した後で、OSの再起動などを行った場合に発生し得る。この場合、何もすることがないのでステップS1024へ進んで処理を終了させる。ステップS1017でNoの場合、ステップS1019へ進む。
ステップS1018では、CPU1は、複合印刷装置5000に対して、製品本来の正規なデバイス名称を宣言させて更に複合USBのインターフェースの構成を次のように変更させるための名称変更指示を作成し発行する。即ち、複合印刷装置5000の複合USBのインターフェースが、Scannerという論理デバイスを備えると共に、PDLとしてPDL1という論理デバイスだけを備えた構成になるように指示を発行する。
この名称変更指示の発行の方法には次の2通りの方法がある。
1つは、USBベンダーリクエストによる方法である。図14を参照して説明する。図14の1104は、USBベンダーリクエストにより、製品本来の正規なデバイス名称を宣言して更に複合USBのインターフェースの構成が上述したScannerとPDL1の構成に切り替わるように名称変更指示を示した一例である。
図14の1104に示す例において、「bmRequestType」の0x41が、デバイスに対する指示であるベンダーリクエストであることを示している。「bRequest」の0x20が、製品本来の正規なデバイス名称を宣言して更に複合USBのインターフェースがScannerとPDL1の構成の複合印刷装置5000に切り替わる指示を示した一例である。
USBベンダーリクエストは、複合印刷装置において、コンピュータ上で稼動しているOSが標準でドライバを持っているデバイスを名乗る場合に、ストレージ装置とか、マウスなどの印刷装置以外のデバイスとして名乗った場合に利用すると良い。もちろん印刷装置として名乗った場合にも利用可能である。
このように、USBベンダーリクエストによる方法によれば、偽名宣言部202によりどのような種類の装置を名乗っていても、名称変更指示を出すことが可能となる利点がある。
もう一つの方法として次のような方法がある。即ち、複合印刷装置がコンピュータ上で稼動しているOSが標準で持っているドライバを適用できるデバイスである場合には、印刷データに名称変更指示を埋め込んで複合印刷装置へ転送する方法もある。この方法について、図15を参照して説明する。図15は、名称変更指示に関するリクエスト例を示すデータ構成図である。
図15の1201に示す例が本方法の一例を示している。図15の1201は、データの先頭が、0x00,0x01,0x03,0x04,0x05,0x06,0x07,x08,0x09で始まるデータを示している。なお、この先頭のデータは、一意に印刷データの開始ではなく名称変更指示を示すデータの開始であることが示せれば、これに限定されない。
図15の1201に示す例では、その次の行に bRequest=0x20 と記述されており、これが製品本来の正規なデバイス名称を宣言して更にScannerとPDL1の構成の複合印刷装置に切り替える指示の一例を示している。
複合印刷装置5000は、図15の1201に示すデータを印刷データとして受け取った場合に、先頭行のデータを読み込んだ時点で、これを印刷データとしては扱わず、それに続いて名称変更指示が来るものとして振る舞う。なお、図15の1201に示す例の先頭行はこの例に限ったものではなく、印刷データとは確実に区別することができるデータであれば良く、予め複合印刷装置5000側とドライバセットアッププログラム側でその値を合わせておく。
図12に戻り、前記ステップS1018において、CPU1から複合印刷装置5000に対して名称変更指示が発行されると、ステップS1020へ進む。
前記ステップS1017でNoの場合に実行されるステップS1019では、CPU1は、次のような処理を実行する。複合印刷装置5000に対して、製品本来の正規なデバイス名称を宣言させて更に複合USBのインターフェースの構成を次のように変更させるための名称変更指示を発行する。即ち、複合印刷装置5000の複合USBのインターフェースが、Scannerという論理デバイスを備えると共に、PDLとしてPDL1とPDL2という論理デバイスを備えた構成になるように指示を発行する。
この名称変更指示の発行の方法には次の2通りの方法がある。前記ステップS1018で説明した内容と、扱うデータが異なるだけで基本的には同じであり、異なる部分のみ説明する。
1つは、USBベンダーリクエストによる方法である。図14を参照して説明する。図14の1105は、USBベンダーリクエストにより、製品本来の正規なデバイス名称を宣言して更に複合USBのインターフェースの構成が上述したScannerとPDL1及びPDL2の構成に切り替わるように名称変更指示を示した一例である。
図14の1105に示す例において、「bmRequestType」の0x41が、デバイスに対する指示であるベンダーリクエストであることを示している。「bRequest」の0x30が、製品本来の正規なデバイス名称を宣言して更に複合USBのインターフェースがScannerとPDL1及びPDL2の構成の複合印刷装置に切り替わる指示を示した一例である。
もう一つの方法として次のような方法がある。即ち、複合印刷装置がコンピュータ上で稼動しているOSが標準で持っているドライバを適用できるデバイスである場合には、印刷データに名称変更指示を埋め込んで複合印刷装置へ転送する方法もある。この方法について、図15を参照して説明する。
図15の1202に示す例が本方法の一例を示している。図15の1202は、データの先頭が、0x00,0x01,0x03,0x04,0x05,0x06,0x07,x08,0x09で始まるデータを示している。
図15の1202に示す例では、その次の行に bRequest=0x30 と記述されており、これが製品本来の正規なデバイス名称を宣言して更にScannerとPDL1及びPDL2の構成の複合印刷装置に切り替える指示の一例を示している。
複合印刷装置5000は、図15の1202に示すデータを印刷データとして受け取った場合に、先頭行のデータを読み込んだ時点で、これを印刷データとしては扱わず、それに続いて名称変更指示が来るものとして振る舞う。なお、図15の1202に示す例の先頭行はこの例に限ったものではないことは、前述した図15の1201に示す例と同じである。
図12に戻り、ステップS1019でCPU1から複合印刷装置5000に対して名称変更指示を発行すると、ステップS1020へ進む。
前記ステップS1018またはステップS1019の処理後のステップS1020では、名称変更指示を受けた複合印刷装置5000のCPU51が次のような処理を実施する。即ち、CPU51がその名称変更指示に従って、製品本来の正規なデバイス名称を宣言すると共に、複合印刷装置5000における複合USBのインターフェースの構成を変更する。即ち、複合USBのインターフェースの構成が、Scannerという論理デバイスとPDLとしてPDL1という論理デバイスのみの構成、もしくはScannerという論理デバイスとPDLとしてPDL1及びPDL2という論理デバイスの構成に変更する。その上で、複合印刷装置5000をリブートする。なお、リブートする目的は、コンピュータ4000で稼動しているOSに複合印刷装置5000の存在を再認識させ、プラグ・アンド・プレイ機能を再び発生させるためである。
その後のステップS1021は、リブートした複合印刷装置5000が立ち上がり、コンピュータ4000との間でプラグ・アンド・プレイ機能が発生する。その結果、前記ステップS1006もしくは前記ステップS1007でコンピュータ4000上の外部メモリ11上に展開したドライバソフトがインストールされる。ドライバセットアッププログラムが、OS1上で起動された場合にはScannerとPDL1のデバイスドライバがインストールされ、OS2上で起動された場合にはScannerとPDL1及びPDL2のデバイスドライバがインストールされる。
以下、上述した第1の実施の形態の特徴を成す処理を要約して説明する。
複合印刷装置5000は、偽名宣言部202により、製品本来の正規なデバイス名称を名乗らず、コンピュータ4000上で稼動しているOSに標準で搭載されているデバイスドライバのいずれかが適用可能なデバイス名称/構成を名乗る。その結果、複合印刷装置5000をOSにUSBを用いて接続した場合、まず始めにOSに標準で搭載されているデバイスドライバが適用できる装置であると認識され、デバイスドライバも自動でインストールされる。この作業により、複合印刷装置5000はOSからの指示を受けることができるようになる。
一方、複合印刷装置5000はOSに標準で搭載されているデバイスドライバのいずれかと一致する名称/構成を名乗っていても、内部的には、コンピュータ4000からの指示に従って名称/構成変更することのできるデバイス名称変更部204を備える。複合印刷装置5000に対応するデバイスドライバソフトウェアはコンピュータ4000上でまず、OSの種類を判別する。そして複合印刷装置5000に搭載されている論理デバイスのうち、どのデバイスドライバがそのOS用に用意されているか判別して利用可能な論理デバイスのみの組み合わせとなるような指示を複合印刷装置5000に対して行う(名称変更指示部211)。
それを受けた複合印刷装置5000はその指示に従ってUSB上の論理デバイスの組み合わせを変更し、更に、製品本来の正規なデバイス名称/構成を名乗る。その結果、USBで接続するOSで利用可能なデバイスドライバがOSにインストールされて利用可能となる。
<第1の実施の形態に係る利点>
上述したように第1の実施の形態によれば、スキャナ装置や複数のPDL印刷装置を搭載した複合印刷装置5000が複合USBを採用する場合に、接続するコンピュータ4000上で稼動するOSの種類に応じて、自動的に最適な構成を採ることが可能となる。即ち、複合USBのインターフェースを、コンピュータ4000で稼動しているOSに対応するデバイスドライバが用意されている論理デバイスのみの構成にすることができる。これにより、プラグ・アンド・プレイ機能により全ての論理デバイスのドライバをインストールすることが可能となる。また、デバイスドライバのインストール処理が失敗することもなく、不明なデバイスが発生することも防止することが可能となる。
[第2の実施の形態]
第2の実施の形態では、複合印刷装置5000がOSの種類を判断し、複合USBのインターフェースの構成について、変更すべき目的の構成を自分で決めて変更している点に特徴がある。上記第1の実施の形態と異なる点について説明する。
<第2の実施の形態の特徴を成す処理>
図16は、第2の実施の形態の特徴を成す処理を示すフローチャートであり、図11で説明したステップS1004からステップS1012までの処理と同じ処理を行った後に実行される。なお、本実施の形態においても、処理を簡略化するために対象OSはOS1とOS2しかないものとしているが、本発明はOS1とOS2に限定するものではない。
図11で説明したように、旧製品監視処理が起動され、複合印刷装置5000がコンピュータ4000に接続されているか否かを監視し、接続された場合にはステップS1313に処理を移す。
次のステップS1313では、CPU1は、接続の確認のとれた装置の現在のデバイス名称/構成を複合印刷装置5000に問い合わせる。その際にUSBのベンダーリクエストを用いて問い合わせを行う。そして、次のステップS1314では、コンピュータ4000が問い合わせてきた現在のデバイス名称/構成を複合印刷装置5000のCPU51が返答する。
続くステップS1315では、CPU1がステップS1314で返答された複合印刷装置5000からの回答が正規のデバイス宣言中であるか否かを確認する。正規のデバイス宣言中であればステップS1320へ進み、正規のデバイス宣言中でなければステップS1316へ進む。
ステップS1316では、複合印刷装置5000が正規のデバイス宣言中でないので、複合印刷装置5000に対してCPU1から名称変更指示を発行する。このとき、旧製品監視処理が稼動しているOSの種類も一緒に通知する。
図17は、この名称変更指示のデータ内容の一例を示す例示図である。
図17の1401は、USBベンダーリクエストにより、名称変更指示と旧製品監視処理がOS1上で稼動していることを通知する一例を示している。旧製品監視処理が稼動しているOSは、複合印刷装置5000と接続するコンピュータ4000上で稼動しているOSと等しいものである。「bmRequestType」の0x41がデバイスに対する指示であるベンダーリクエストであることを示している。「bRequest」の0xF0が旧製品監視処理が稼動しているOSの種類をデバイスに通知することを示しており、「bValue」の0x0010がOSがOS1であることを示している。
図17の1402は、USBベンダーリクエストにより、名称変更指示と旧製品監視処理がOS2上で稼動していることを通知する一例を示している。「bmRequestType」の0x41がデバイスに対する指示であるベンダーリクエストであることを示している。「bRequest」の0xF0が旧製品監視処理が稼動しているOSの種類をデバイスに通知することを示しており、「bValue」の0x0020がOSがOS2であることを示している。
一方、複合印刷装置5000が図16及び図17のコンピュータ4000上で稼動しているOSが標準で持っているドライバを適用できるデバイスである場合には、更に印刷データに切り替えリクエストを埋め込んで印刷装置に流す方法もある。図17の1403がその一例を示している。
図17の1403は、そのデータの先頭が0x00,0x01,0x03,0x04,0x05,0x06,0x07,x08,0x09で始まるデータを示している。この先頭のデータは、一意に印刷データの開始を示すものではなく名称変更指示を示すデータの開始であることが示せれば、これに限定するものではない。
図17の1403では、2行目に「bRequest=0xF0」と記述されており、これが名称変更指示であり、その次のデータとして旧製品監視処理が稼動しているOSの種類をデバイスに通知することを示している。その次の行には「wValue=0x0010」と記述されており、旧製品監視処理が稼動しているOSがOS1であることを示している。
図17の1404では、データの先頭が、0x00,0x01,0x03,0x04,0x05,0x06,0x07,0x08,0x09で始まるデータを示している。この先頭のデータは、一意に印刷データの開始を示すものではなく名称変更指示を示すデータの開始であることが示せれば、これに限定されない。
図17の1404では、2行目に「bRequest=0xF0」と記述されており、これが名称変更指示であり、その次のデータとして旧製品監視処理が稼動しているOSの種類をデバイスに通知することを示している。その次の行には「wValue=0x0020」と記述されており、旧製品監視処理が稼動しているOSがOS2であることを示している。
複合印刷装置5000は、図17の1403や1404を印刷データとして受け取った場合に、先頭行のデータを読み込んだ時点で、これを印刷データとしては扱わず、それに続いて名称変更指示が来るものとして振る舞う。そしてその名称変更指示が次に旧製品監視処理が稼動しているOSの種類をデバイスに通知することを示している場合には、続いてOSの種類の通知が来るものとして振る舞う。なお、図17の1403や1404の先頭行はこの例に限ったものではなく、印刷データとは確実に区別することの可能データをしていれば良く、予め複合印刷装置5000側とドライバセットアッププログラム側でその値を合わせておく。
図16に戻り、ステップS1317において、複合印刷装置5000のCPU51は、名称変更指示で通知された旧製品監視処理が稼動しているOSがOS1か否かを判断する。OS1の場合はステップS1318へ進み、OS1でない場合はステップS1319へ進む。
ステップS1318では、OS1に適合するデバイス名称/構成に変更すべきことが明らかになったので、CPU51が製品本来の正規なデバイス名称を宣言する。そして複合USBのインターフェースの構成を、Scannerと、PDLとしてPDL1のみの構成に変更してリブートする。
また、ステップS1319では、OS2に適合するデバイス名称/構成に変更すべきことが明らかになったので、CPU51が製品本来の正規なデバイス名称を宣言する。そして、複合USBのインターフェースの構成を、Scannerと、PDLとしてPDL1とPDL2の構成に複合印刷装置5000を変更してリブートする。
なお、リブートする目的はコンピュータ1302で稼動しているOSに複合印刷装置5000の存在を再認識させ、プラグ・アンド・プレイ機能を再び発生させるためである。
ステップS1318とステップS1319の後は、ステップS1324へ進む。
一方、前記ステップS1315において、CPU1が正規のデバイス宣言中であると判断した後で実行されるステップS1320では、次のような処理が行われる。即ち、ステップS1314で返答された複合印刷装置5000からの回答が正規のデバイス宣言中であった場合にCPU1が旧製品監視処理がOS1上で稼動しているか否かを確認する。Yesの場合はステップS1321へ進み、Noの場合はステップS1322へ進む。
ステップS1321では、複合印刷装置5000からの返答がScannerとPDL1であるか否かを確認する。この処理に来た時点でScannerとPDL1であれば、それは複合USBのインターフェースの構成が目的の構成であるので、何もせずにステップS1323へ進み処理を終了する。つまり、CPU1は一連のドライバセットアッププログラムの処理を終了する。ScannerとPDL1でなければ、目的とする構成ではないことが明らかなのでデバイス構成を変更するためにステップS1316へ進む。
このような状態になるケースは、一度複合印刷装置5000をOS2が稼動しているコンピュータ4000に接続して、ScannerとPDL1とPDL2の構成にした後で、その複合印刷装置をOS1の稼動しているコンピュータに接続した場合などが考えられる。
一方、ステップS1322では、複合印刷装置5000からの返答がScannerとPDL1とPDL2であるか否かを確認する。この処理に来た時点でScannerとPDL1とPLD2であれば、それは複合USBのインターフェースの構成が目的の構成であるので、何もせずにステップS1323へ進み処理を終了する。ScanerとPDLとPDL2でなければ、目的とする構成ではないことが明らかなのでデバイス構成を変更するためにステップS1316へ進む。
このような状態になるケースは、一度複合印刷装置5000をOS1が稼動しているコンピュータ4000に接続して、ScannerとPDL1の構成にした後で、その複合印刷装置をOS2の稼動しているコンピュータに接続した場合などが考えられる。
ステップS1324では、リブートした複合印刷装置5000が立ち上がり、コンピュータ1302とプラグ・アンド・プレイ機能が発生する。その結果1306もしくは1307でコンピュータ4000上の外部メモリ11上に展開したドライバソフトがインストールされることを示している。
結果として、ドライバセットアッププログラムがOS1上で稼動している場合スキャナ/PDL1、OS2上で稼動している場合はスキャナ/PDL1/PDL2のドライバがインストールされる。
<第2の実施の形態に係る利点>
第2の実施の形態では、スキャナ装置や複数のPDL印刷装置を搭載した複合印刷装置5000が複合USBを採用する場合に、接続するコンピュータ4000上で稼動するOSの種類に応じて、自動的に最適な構成を採ることが可能となる。その際、複合印刷装置5000がOSの種類を判断して自分で変更すべき目的の構成を判断して構成を変更する。
その結果、複合印刷装置5000を、コンピュータ4000で稼動しているOSに対応するデバイスドライバが用意されている論理デバイスのみの構成にすることができる。これにより、プラグ・アンド・プレイ機能の結果、全ての論理デバイスに対応したデバイスドライバをインストールすることが可能となる。また、デバイスドライバのインストール処理が失敗することもなく、不明なデバイスが発生することも防止することが可能となる。
[第3の実施の形態]
第1及び第2の実施の形態では、複合印刷装置5000が、接続するコンピュータ4000上で稼動するOSの種類に応じて、自動的に最適な構成を採るようにした。第3の実施の形態では、構成が変更された複合印刷装置5000の状態を元に戻すときの処理について説明する。つまり、第1または第2の実施の形態適用後の複合印刷装置5000の構成を、第1または第2の実施の形態適用前の状態に戻す処理について説明する。
<第3の実施の形態に係る処理>
図18は、第3の実施の形態の特徴を成す処理を示すフローチャートである。なお、本実施の形態においても、処理を簡略化するために対象OSはOS1とOS2しかないものとしているが、本発明はOS1とOS2に限定するものではない。
本実施の形態における複合印刷装置5000は、複合USBのインターフェースとして、Scannerという論理デバイスと、PDLとしてPDL1とPDL2という論理デバイスを搭載した装置である。さらに、上記第1の実施の形態もしくは第2の実施の形態適用後の製品本来の正規なデバイス名称/構成を名乗っている装置である。また、図10に示した、USBのデバイスディスクリプタにおけるIDVendorとIDProductは、もちろんその製品本来が持つ値をそのまま持っている。そして、本実施の形態におけるコンピュータ4000のRAM2上には、OS1もしくはOS2が稼動しているものとする。
まず図18のステップS1504において、CPU1は、第1及び第2の実施の形態で起動した旧製品監視処理(ステップS1010もしくはS1310)がRAM2上で実行中か否かを確認する。実行中であればステップS1505へ進む。実行中でなければステップS1506へ進む。
ステップS1505では、CPU1は、RAM2上にて旧製品監視処理の停止を行い、ステップS1506へ進む。旧製品監視処理を停止するのは次のような理由による。即ち、停旧製品監視処理は、USBのデバイスディスクリプタにおけるIDVendorとIDProductがその製品本来が持つ値のままとなっている製品が接続されるのを待つ。接続を確認したら、その接続されたデバイスの名称/構成を問い合わせて、デバイスを製品本来のデバイス名称/構成に変更するべく動作する。つまり、旧製品監視処理は本実施の形態とは逆の処理を行うものであるため、ここでその処理を停止しておくのである。
ステップS1506においては、CPU1は、図10に示した、USBのデバイスディスクリプタにおけるIDVendorとidProductが製品本来が持つ値のままとなっている装置が接続されているか否かを監視する。接続されていなければ、再度ステップS1506に戻り、接続されるまで待ち続ける。接続された場合にはステップS1507に処理を移す。
ステップS1507では、接続確認のとれた複合印刷装置5000に対して、旧製品のデバイス名称/構成を宣言するようにCPU1から名称変更指示を発行する。この時、名称変更指示の出し方には2通りの方法がある。
1つは、USBベンダーリクエストによる方法である。ここで図14を用いてUSBのリクエストについて説明する。
図14の1106は、USBベンダーリクエストにより、旧製品のデバイス名称/構成に切り替わるような名称変更指示を示した一例である。「bmRequestType」の0x41がデバイスに対する指示であるベンダーリクエストであることを示している。「bRequest」の0xFFが旧製品のデバイス名称/構成を宣言して旧製品に切り替わる指示を示した一例である。
もう一つの方法としては、印刷データに切り替えリクエストを埋め込んで印刷装置に流す方法もある。
図15の1203に示す例が本方法の一例を示している。図15の1203は、データの先頭が、0x00,0x01,0x03,0x04,0x05,0x06,0x07,x08,0x09で始まるデータを示している。なお、この先頭のデータは、一意に印刷データの開始ではなく名称変更指示を示すデータの開始であることが示せれば、これに限定されない。
図15の1203に示す例では、その次の行に bRequest=0xFF と記述されており、これが旧製品のデバイス名称を宣言して旧製品の構成に切り替える指示の一例を示している。
複合印刷装置5000は、図15の1203を印刷データとして受け取った場合に、先頭行のデータを読み込んだ時点で、これを印刷データとしては扱わず、それに続いて名称変更指示が来るものとして振る舞う。なお、図15の1203の先頭行はこの例に限ったものではなく、印刷データとは確実に区別することの可能なデータをしていれば良く、予め複合印刷装置5000側とドライバセットアッププログラム側でその値を合わせておく。
ステップS1507で名称変更指示を発行すると、ステップS1508へ進む。ステップS1508では、名称変更指示を受けた複合印刷装置5000のCPU51が、その名称変更指示に従って、旧製品のデバイス名称を宣言する。つまりコンピュータ4000のOSに標準で搭載されているデバイスドライバのいずれかと一致する名称を宣言することになる。そして旧製品の構成に変更した上で、複合印刷装置5000をリブートする。
その後のステップS1509は、リブートした複合印刷装置5000が立ち上がり、コンピュータ1502との間でプラグ・アンド・プレイ機能が発生し、その結果、OSが標準で持っているドライバ(InboxDriver)がインストールされる。
上記本実施の形態の処理(元に戻す処理)は、独立した個別のユーティリティとして存在していても良いし、ドライバのUnインストール処理の一環として行っても良く、本発明ではその実施時期については特に定めない。
<第3の実施の形態に係る利点>
第3の実施の形態によれば、コンピュータ4000で稼動しているOSに対応するデバイスドライバが用意されている論理デバイスのみの構成になっているデバイスの名称/構成を、旧製品を示すデバイスの名称/構成に戻すことが可能となる。この処理により、デバイスの状態を初期状態に戻すことが可能となる。
<その他の実施形態>
なお、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしても良い。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(OS)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
更に、前述した実施の形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
実施の形態に係る印刷システムの構成を示すブロック図である。 実施の形態に係る特徴的な処理を示す基本構成図である。 プラグ・アンド・プレイの仕組みを説明するためのデータ類を示す表形式図である。 複合USBの構成の一例を示す概念図である。 複合USBの構成の他の例を示す概念図である。 実施の形態の背景的な概念を説明するための説明図である。 本発明を適用していない複合印刷装置の処理フローの第1の例を示すフローチャートである。 本発明を適用していない複合印刷装置の処理フローの第2の例を示すフローチャートである。 本発明を適用していない複合印刷装置の処理フローの第3の例を示すフローチャートである。 USBのデバイスディスクリプタの一例を示した表形式図である。 第1の実施の形態の特徴を成す処理を示すフローチャートである。 図11の続きのフローチャートである。 USBのデバイスリクエストの構成を示した表形式図である。 USBのデバイスリクエストの構成を示した表形式図である。 名称変更指示に関するリクエスト例を示すデータ構成図である。 第2の実施の形態の特徴を成す処理を示すフローチャートである。 名称変更指示のデータ内容の一例を示す例示図である。 第3の実施の形態の特徴を成す処理を示すフローチャートである。
符号の説明
1,51 CPU
2,52 RAM
3,53ROM
11,60 外部メモリ
51 CPU
53 ROM
211 名称変更指示部
202 偽名宣言部
203 デバイス名称/構成
204 デバイス名称変更部
4000 コンピュータ
5000 複合印刷装置

Claims (15)

  1. ローカルインターフェースを用いて情報処理装置と印刷装置が接続される印刷システムにおいて、
    前記印刷装置が持つ正規のデバイス名称/構成とは異なるデバイス名称/構成として、前記情報処理装置で稼動するオペレーティングシステムに標準で搭載されているデバイスドライバが適用可能なデバイス名称/構成を設定する設定手段と、
    前記情報処理装置が発行した変更指示に従って、前記印刷装置に搭載されている論理デバイスのうち前記情報処理装置が利用可能な論理デバイスを用いた構成となるように論理デバイスの組み合わせを変更し、前記設定手段で設定されたデバイス名称/構成を前記正規のデバイス名称/構成に変更する名称変更手段とを備えたことを特徴とする印刷システム。
  2. 前記設定手段は、前記印刷装置が持つ正規のデバイス名称/構成とは異なるデバイス名称/構成として、印刷デバイスまたは印刷デバイス以外のデバイスの名称/構成を設定することを特徴とする請求項1に記載の印刷システム。
  3. 前記ローカルインターフェースはUSBであり、前記名称変更手段は、USBのベンダーリクエストに従って処理を行うことを特徴とする請求項1または2に記載の印刷システム。
  4. 前記名称変更手段は、前記情報処理装置から前記印刷装置に送られる印刷データの中に含まれた前記変更指示に従って処理することを特徴とする請求項1乃至3のいずれか一項に記載の印刷システム。
  5. 前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、
    前記判別手段の判別の結果に応じて前記正規のデバイス名称/構成を判断して前記変更指示を作成し発行する指示手段とを備えたことを特徴とする請求項1乃至4のいずれか一項に記載の印刷システム。
  6. 前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、
    前記名称変更手段に対して、前記判別手段の判別の結果を通知すると共に前記変更指示を発行する指示手段とを備え、
    前記名称変更手段は、前記指示手段から通知された前記判別手段の判別の結果に応じて前記正規のデバイス名称/構成を判断し、前記設定手段で設定されたデバイス名称/構成を前記正規のデバイス名称/構成に変更することを特徴とする請求項1乃至4のいずれか一項に記載の印刷システム。
  7. 前記印刷装置に対して、デバイス名称/構成を問い合わせる問い合わせ手段を有し、
    前記指示手段は、前記問い合わせ手段の問い合わせ結果を参照して、前記変更指示を発行することを特徴とする請求項5または6に記載の印刷システム。
  8. 前記名称変更手段によって前記正規のデバイス名称/構成として変更されたデバイス名称/構成を、前記情報処理装置の指示に従って、該正規のデバイス名称/構成とは異なる元のデバイス名称/構成に変更する手段を備えたことを特徴とする請求項1乃至7のいずれか一項に記載の印刷システム。
  9. ローカルインターフェースを用いて印刷装置に接続される情報処理装置において、
    当該情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、
    前記判別手段の判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示手段とを備えたことを特徴とする情報処理装置。
  10. ローカルインターフェースを用いて印刷装置に接続される情報処理装置において、
    当該情報処理装置で稼動するオペレーティングシステムの種類を判別する判別手段と、
    論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別手段の判別の結果に応じて実施させるための該判別の結果の通知を、前記印刷装置に対して発行する指示手段とを備えたことを特徴とする情報処理装置。
  11. 前記印刷装置に対してデバイス名称/構成を問い合わせる問い合わせ手段を有し、
    前記指示手段は、前記問い合わせ手段の問い合わせ結果を参照して、前記変更指示を発行することを特徴とする請求項9または10に記載の情報処理装置。
  12. ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法であって、
    前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別工程と、
    前記判別工程の判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示工程とを有することを特徴とする情報処理装置の制御方法。
  13. ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法であって、
    前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別工程と、
    論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別工程の判別の結果に応じて実施させるための該判別の結果の通知を、前記印刷装置に対して発行する指示工程とを有することを特徴とする情報処理装置の制御方法。
  14. ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法を実行するための、コンピュータで読み取り可能なプログラムであって、
    前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別ステップと、
    前記判別ステップの判別の結果に応じて論理デバイスの組み合わせを変更させてデバイス名称/構成を正規のデバイス名称/構成に変更するための変更指示を前記印刷装置に対して発行する指示ステップとを有することを特徴とするプログラム。
  15. ローカルインターフェースを用いて印刷装置に接続される情報処理装置の制御方法を実行するための、コンピュータで読み取り可能なプログラムであって、
    前記情報処理装置で稼動するオペレーティングシステムの種類を判別する判別ステップと、
    論理デバイスの組み合わせを変更させるための変更指示と共に、前記組み合わせの変更を前記判別ステップの判別の結果に応じて実施させるための判別の結果の通知を、前記印刷装置に対して発行する指示ステップとを有することを特徴とするプログラム。
JP2008273186A 2008-10-23 2008-10-23 印刷システム、情報処理装置及びその制御方法、並びにプログラム Pending JP2010102500A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008273186A JP2010102500A (ja) 2008-10-23 2008-10-23 印刷システム、情報処理装置及びその制御方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008273186A JP2010102500A (ja) 2008-10-23 2008-10-23 印刷システム、情報処理装置及びその制御方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2010102500A true JP2010102500A (ja) 2010-05-06

Family

ID=42293097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008273186A Pending JP2010102500A (ja) 2008-10-23 2008-10-23 印刷システム、情報処理装置及びその制御方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP2010102500A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017105002A (ja) * 2015-12-07 2017-06-15 キヤノン株式会社 印刷装置、印刷装置の制御方法、及びプログラム
JP2018173998A (ja) * 2018-07-24 2018-11-08 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
KR20190090707A (ko) * 2018-01-25 2019-08-02 캐논 가부시끼가이샤 디바이스 데이터 관리 시스템, 제어방법, 및 기억매체
JP2023076052A (ja) * 2021-11-22 2023-06-01 キヤノン株式会社 画像形成装置、画像形成装置の制御方法並びにプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017105002A (ja) * 2015-12-07 2017-06-15 キヤノン株式会社 印刷装置、印刷装置の制御方法、及びプログラム
KR20190090707A (ko) * 2018-01-25 2019-08-02 캐논 가부시끼가이샤 디바이스 데이터 관리 시스템, 제어방법, 및 기억매체
KR102412743B1 (ko) 2018-01-25 2022-06-24 캐논 가부시끼가이샤 디바이스 데이터 관리 시스템, 제어방법, 및 기억매체
JP2018173998A (ja) * 2018-07-24 2018-11-08 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP2023076052A (ja) * 2021-11-22 2023-06-01 キヤノン株式会社 画像形成装置、画像形成装置の制御方法並びにプログラム
JP7346524B2 (ja) 2021-11-22 2023-09-19 キヤノン株式会社 画像形成装置、画像形成装置の制御方法並びにプログラム
US11972159B2 (en) 2021-11-22 2024-04-30 Canon Kabushiki Kaisha Image forming device and method of controlling to transmit print data to an image forming device

Similar Documents

Publication Publication Date Title
CN1323353C (zh) 信息处理装置及其控制方法
US7907313B2 (en) Management of multiple printer drivers
JP4378323B2 (ja) 情報処理装置および印刷装置および印刷システムおよび設定方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US9218150B2 (en) Image forming apparatus and method thereof
US9367266B2 (en) Information processing apparatus, control method, and storage medium
US20050162688A1 (en) Printing terminal, printing data outputting device, and computer and peripheral device using therefor
US20120254898A1 (en) Information processing apparatus, information processing method, and program
US9141890B2 (en) Data processing apparatus, data processing method, data processing program for implementing the method, and image processing apparatus
JP6140937B2 (ja) ネットワークデバイス、プログラム、システムおよび方法
JP2001256170A (ja) 周辺装置及びプリンタ
JP4579799B2 (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
JP2004127252A (ja) 情報処理装置、情報処理方法、制御プログラム
US20170060488A1 (en) Information processing apparatus, method of controlling the same, print system and storage medium
JP2010039684A (ja) 画像形成装置、情報処理装置、データ処理方法及びプログラム
JP7439207B2 (ja) プログラム
JP2010102500A (ja) 印刷システム、情報処理装置及びその制御方法、並びにプログラム
JP2007069359A (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
JP7102216B2 (ja) プログラム
JP3789062B2 (ja) 情報処理装置およびデータ処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体
JP2015026215A (ja) 印刷システムおよびその制御方法、情報処理装置およびその制御方法、印刷装置およびその制御方法、並びにプログラム
JP2014174679A (ja) 情報処理装置及びその方法
JP5020131B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7171227B2 (ja) 情報処理装置、その制御方法およびアプリケーション
JP2005063128A (ja) 印刷ターミナルおよび印刷データ出力装置
JP2005115440A (ja) コンピュータにアンインストールを行わせるためのコンピュータプログラム