"複数のUSBポートと、当該各USBポートに接続されるUSBデバイスから入力されるデータを処理するデータ処理部とを有するデータ処理装置であって、上記USBデバイスとして上記USBポートに接続されるキーボード装置、および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースを記憶するデータベース記憶手段と、上記USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得部と、上記デバイスID取得部が取得したデバイスIDと一致するデバイスIDが上記デバイス照合データベースに含まれるデバイスIDの中に存在するか否かを照合するデバイス照合部とを備え、上記データ処理部は、上記デバイス照合部による照合結果に応じて、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理することを特徴とするデータ処理装置。上記デバイス照合部によって一致するデバイスIDが存在すると判断された場合に、当該デバイスIDに対応するUSBデバイスから入力されるデータに対する処理のために上記データ処理部が占有される期間を、他の処理を行うために上記データ処理部が占有される期間と異ならせるためのデバイス管理スレッドを生成するスレッド生成部を備えていることを特徴とする請求項1に記載のデータ処理装置。上記デバイス照合部によって一致するデバイスIDが存在すると判断された場合に、当該デバイスIDに対応するUSBデバイスから入力されるデータに対する処理において使用するファイルおよび情報を識別するためのデバイス管理ハンドルを生成するハンドル生成部を備えていることを特徴とする請求項2に記載のデータ処理装置。上記ハンドル生成部は、上記デバイス管理スレッドと上記デバイス管理ハンドルとを対応付けることを特徴とする請求項3に記載のデータ処理装置。上記データ処理部は、上記デバイス管理ハンドルに基づいて上記USBデバイスからデータを読み出すことを特徴とする請求項3または4に記載のデータ処理装置。コピー機能、スキャナー機能、ファクシミリ機能、およびプリンター機能のうちの2つ以上の機能を有する多機能周辺装置であって、請求項1から5のいずれか1項に記載のデータ処理装置を備えていることを特徴とする多機能周辺装置。上記データ処理部は、上記複数のUSBポートに接続された2以上のキーボード装置からの入力を受け付けて当該キーボード装置毎に処理することを特徴とする請求項6に記載の多機能周辺装置。複数のUSBポートと、当該各USBポートに接続されるUSBデバイスから入力されるデータを処理するデータ処理部とを有するデータ処理装置におけるデータ管理方法であって、上記各USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得工程と、上記デバイスID取得工程で取得したデバイスIDが、上記USBデバイスの1つであるキーボード装置および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースに含まれているデバイスIDの中に存在するか否かを照合するデバイス照合工程とを含み、上記デバイス照合工程の照合結果に応じて、上記データ処理部に、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理させることを特徴とするデータ処理方法。請求項1から5のいずれか1項に記載のデータ処理装置を動作させるプログラムであって、コンピュータを上記各部として機能させるためのプログラム。請求項9に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。しかしながら、上記の従来技術では、同じ出力信号形式でデータを出力する複数のUSBデバイスが同じコンピュータ装置に接続された場合に、そのコンピュータ装置において、入力されたデータがいずれのUSBデバイスから入力されたデータであるのかを認識できないという問題がある。例えば、1つのコンピュータ装置にキーボード装置Aとキーボード装置Bとが接続されており、ユーザーがこれら両キーボード装置に対する打ち込みを同時に行った場合、これら両キーボード装置からの入力は同じアプリケーションキーボードデータを記録しているアプリケーションに入力される。このため、これら両キーボード装置に対するキーストロークに応じたキーボードデータは、ユーザーインターフェース上で混ざり合ってしまう。また、USBデバイスの中には、キーボード装置と同じ出力信号形式でデータの出力を行うUSBデバイスUSBキーボードエミュレート装置がある。そのようなUSBデバイスの典型的な例としては、USBカードリーダーカード記録媒体に記録されているデータを読み出してコンピュータ装置に伝達する装置。USBスマートカードリーダー等。などが挙げられる。この種のUSBデバイスとキーボード装置とが同時にUSBポートに接続されている場合にも、これら各装置キーボード装置および他のUSBデバイスからの入力がコンピュータ装置において混ざり合ってしまう。本発明は、上記の問題点に鑑みてなされたものであり、その目的は、キーボード装置と、上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスとがUSB接続された場合であっても、それら各USBデバイスキーボード装置および他のUSB装置から入力されるデータをUSBデバイス毎に適切に処理することのできるデータ処理装置、多機能周辺装置、およびデータ管理方法を提供することにある。本発明のデータ処理装置は、上記の課題を解決するために、複数のUSBポートと、当該各USBポートに接続されるUSBデバイスから入力されるデータを処理するデータ処理部とを有するデータ処理装置であって、上記USBデバイスとして上記USBポートに接続されるキーボード装置、および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースを記憶するデータベース記憶手段と、上記USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得部と、上記デバイスID取得部が取得したデバイスIDと一致するデバイスIDが上記デバイス照合データベースに含まれるデバイスIDの中に存在するか否かを照合するデバイス照合部とを備え、上記データ処理部は、上記デバイス照合部による照合結果に応じて、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理することを特徴としている。上記の構成によれば、デバイス照合部が、デバイスID取得部の取得した各USBデバイスのデバイスIDが、データベース記憶手段に記憶されているデバイス照合データベースに含まれるデバイスIDの中に存在するか否かを照合し、データ処理部が、上記デバイス照合部による照合結果に応じて、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理する。これにより、キーボード装置と上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスとが接続された場合であっても、キーボード装置から入力されるデータと、他のUSBデバイスから入力されるデータとを区別して処理することができる。これら各USBデバイス装置キーボード装置および他のUSBデバイスからの入力データが混ざり合ってしまうことを防止し、各USBデバイスから入力されるデータをUSBデバイス毎に適切に処理することができる。また、上記デバイス照合部によって一致するデバイスIDが存在すると判断された場合に、当該デバイスIDに対応するUSBデバイスから入力されるデータに対する処理のために上記データ処理部が占有される期間を、他の処理を行うために上記データ処理部が占有される期間と異ならせるためのデバイス管理スレッドを生成するスレッド生成部を備えている構成としてもよい。上記の構成によれば、各USBデバイスから入力されるデータを処理するためにデータ処理部が占有される期間を、USBデバイス毎に異ならせることができる。したがって、キーボード装置から入力されるデータと、他のUSBデバイスから入力されるデータとを確実に区別して処理することができる。また、上記デバイス照合部によって一致するデバイスIDが存在すると判断された場合に、当該デバイスIDに対応するUSBデバイスから入力されるデータに対する処理において使用するファイルおよび情報を識別するためのデバイス管理ハンドルを生成するハンドル生成部を備えている構成であってもよい。上記の構成によれば、USBデバイス毎に固有のデバイス管理ハンドルを生成してメモリー上のファイルや情報に対するアクセスをUSBデバイス毎に管理することができる。また、上記ハンドル生成部は、上記デバイス管理スレッドと上記デバイス管理ハンドルとを対応付ける構成であってもよい。上記の構成によれば、各USBデバイスに対応するデバイス管理スレッドを当該USBデバイスに固有のデバイス管理ハンドルに対応付けて管理することができる。また、上記データ処理部は、上記デバイス管理ハンドルに基づいて上記USBデバイスからデータを読み出す構成であってもよい。上記の構成によれば、各USBデバイスからのデータの読み出しをUSBデバイス毎に適切に管理することができる。本発明の多機能周辺装置は、コピー機能、スキャナー機能、ファクシミリ機能、およびプリンター機能のうちの2つ以上の機能を有する多機能周辺装置であって、上記したいずれかのデータ処理装置を備えていることを特徴としている。上記の構成によれば、出力信号形式が同一である複数のUSBデバイスが上記多機能周辺装置に接続された場合であっても、当該各USBデバイスに対応するスレッドを生成してUSBデバイス毎に分離して処理することができる。したがって、各USBデバイスからの入力データが混ざり合ってしまうことを防止し、各USBデバイスから入力されるデータをUSBデバイス毎に適切に処理することができる。また、上記データ処理部は、上記複数のUSBポートに接続された2以上のキーボード装置からの入力を受け付けて当該キーボード装置毎に処理する構成であってもよい。上記の構成によれば、多機能周辺装置に出力信号形式が同一である複数のキーボード装置が接続された場合であっても、それら各キーボード装置に対応するスレッドを生成してキーボード装置毎に分離して処理することができる。したがって、各キーボード装置からの入力データが混ざり合ってしまうことを防止し、各キーボード装置から入力されるデータをキーボード装置毎に適切に処理することができる。本発明のデータ管理方法は、複数のUSBポートと、当該各USBポートに接続されるUSBデバイスから入力されるデータを処理するデータ処理部とを有するデータ処理装置におけるデータ管理方法であって、上記各USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得工程と、上記デバイスID取得工程で取得したデバイスIDが、上記USBデバイスの1つであるキーボード装置および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースに含まれているデバイスIDの中に存在するか否かを照合するデバイス照合工程とを含み、上記デバイス照合工程の照合結果に応じて、上記データ処理部に、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理させることを特徴としている。上記の方法によれば、キーボード装置と上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスとが接続された場合であっても、キーボード装置から入力されるデータと、他のUSBデバイスから入力されるデータとを区別して処理することができる。なお、上記画データ処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各部として動作させることにより、上記データ処理装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。以上のように、本発明のデータ処理装置は、上記USBデバイスとして上記USBポートに接続されるキーボード装置、および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースを記憶するデータベース記憶手段と、上記USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得部と、上記デバイスID取得部が取得したデバイスIDと一致するデバイスIDが上記デバイス照合データベースに含まれるデバイスIDの中に存在するか否かを照合するデバイス照合部とを備え、上記データ処理部は、上記デバイス照合部による照合結果に応じて、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理する。また、本発明のデータ管理方法は、上記各USBポートに接続された各USBデバイスのデバイスIDを取得するデバイスID取得工程と、上記デバイスID取得工程で取得したデバイスIDが、上記USBデバイスの1つであるキーボード装置および上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスのデバイスIDが登録されたデバイス照合データベースに含まれているデバイスIDの中に存在するか否かを照合するデバイス照合工程とを含み、上記デバイス照合工程の照合結果に応じて、上記データ処理部に、上記キーボード装置から入力されるデータと、上記他のUSBデバイスから入力されるデータとを区別して処理させる。それゆえ、キーボード装置と上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスとが接続された場合であっても、キーボード装置から入力されるデータと、他のUSBデバイスから入力されるデータとを区別して処理することができる。1-1.コンピュータ装置の構成例図1は、本実施形態にかかるコンピュータ装置120の概略構成を示すブロック図である。この図に示すように、コンピュータ装置120は、制御部124、メモリーアドレッサブルメモリー127、デバイスインターフェース126、およびユーザーインターフェース128を備えており、これら各部はデータバス130を介して互いに通信可能に接続されている。制御部124はCPUcentralprocessingunit、中央演算装置等からなり、アプリケーションアプリケーションプログラム123やウェブブラウザーなどを実行するオペレーションシステムオペレーションプログラム125を用いて各種の処理を行う。例えば、キーボード照合データベースを生成する処理、デバイス管理スレッドを生成する処理、およびデバイス管理ハンドルを生成する処理などを行う。これら各処理の詳細については後述する。デバイスインターフェース126は、USBuniversalserialbusポートおよびその処理部、イーサネット登録商標ポートおよびその処理部などからなる。なお、デバイスインターフェース126は、複数のUSBポートを有しており、これら複数のUSBポートに対して同時に複数のUSBデバイスを接続可能になっている。ユーザーインターフェース128は、状態を示すランプ、トグルスイッチ、表示装置、キーボード、マウス等のポインティングデバイス、タッチスクリーン、およびこれらの組み合わせなどからなる。1-2.MFPの構成例図2は、本発明をMFPmultifunctionperipheraldevice、多機能周辺装置200に適用する場合の構成例を示す説明図である。この図に示すように、MFP200は、インターフェースポート202、インターフェース制御部204、データバス206、制御部処理モジュール208、ROMreadonlymemory210、RAMrandomaccessmemory212、大容量記憶部214、画像ログ記憶部216、ユーザーインターフェース218、スキャン制御部220、FAXfacsimile制御部222、コピー制御部224、プリント制御部226、スキャナー230、プリンター240、および出力方向センサー242を備えている。また、このMFP200は、複数のUSBデバイスUSBタイプの装置を当該MFP200に同時にUSB接続できるようになっている。インターフェースポート202には、プリンターケーブル、USBデバイス、ネットワークリンク、あるいは外部無線モジュールなどが接続される。インターフェース制御部204は、インターフェースポート202とデータバス206との間に設けられており、データバス206を介して接続されているMFP200の1または複数の装置制御部208、スキャン制御部220、FAX制御部222、コピー制御部224、プリント制御部226などとインターフェースポート202との間を直接通信可能にしたり、これら各装置の状態を示す信号の送受信を制御したりする。制御部208は、命令を実行するプロセッサーおよび/または演算回路からなり、ROM210からのデータの取り出し、RAM212とのデータ交換、RAM212の記憶容量を超えるデータの大容量記憶部214への保存などを行う。なお、インターフェース制御部204、スキャン制御部220、FAX制御部222、コピー制御部224、およびプリント制御部226のうちの一部または全部の機能を制御部208が行う構成としてもよい。ユーザーインターフェース218は、ユーザーからの指示を受け付ける指示入力部、およびユーザーに各種情報を提示するための表示部を備えているいずれも図示せず。なお、上記指示入力部は、ユーザーからの指示入力に応じた出力データをUSBキーボード形式で制御部208に出力するキーボード、タッチパネル、あるいはキー操作部等であってもよい。画像ログ記憶部216は、MFP200において取り扱った画像のログ情報を記憶する。画像ログ記憶部216は、個別の記憶部であってもよく、分散して備えられる構成、例えば、制御部208が、パラメータ、ファイル、索引、あるいはこれらの組み合わせなどをROM210、RAM212、大容量記憶部214、あるいはこれらの組み合わせに分散して記憶させる構成であってもよい。スキャン制御部220、FAX制御部222、コピー制御部224は、スキャナー230との直接通信、および/または、例えばデータバス206を介したスキャナー230と1または複数の装置との間の信号の送受信を制御する。これら各制御部は、それぞれ個別に設けられていてもよく、一体的に設けられていてもよい。FAX制御部222、コピー制御部224、およびプリント制御部226は、プリンター240との直接通信、および/または、例えばデータバス206を介したプリンター240と1または複数の装置との間の信号の送受信を制御する。これら各制御部は、それぞれ個別に設けられていてもよく、一体的に設けられていてもよい。また、MFP200は、ROM210、RAM212、大容量記憶部214、あるいはこれらの組み合わせに、キャリブレーションテーブルを記憶している。制御部208、あるいは制御部208に接続される外部装置例えばUSBポートを介して接続される1または複数のキーボード装置は、プリント制御部226および/またはインターフェースポート202を介してこのキャリブレーションテーブルにアクセスすることができる。なお、MFP200が、ユーザーインターフェース218に対するユーザーからの指示入力や、プリンター240の出力方向センサー242の検出結果などを通知する通知手段を備えていてもよく、インターフェースポート202を介してMFP200に接続される外部装置に送信する送信手段を備えていてもよい。また、図1のコンピュータ装置120および/または図2のMFP200は、例えばvxWorks登録商標あるいはLinux登録商標などのオペレーションシステムを備えていてもよい。また、MFP200は、装置を適切に機能させるためのファームウェアに加えて、当該MFP200に対するUSB接続をサポートするためのUSBスタックアプリケーションを有している。MFP200における1つのUSBポートには1つのUSBキーボードが接続されており、当該MFP200における他のUSBポートにはUSBキーボードに類似するUSBキーボードエミュレートリーダーUSBキーボードエミュレート装置が接続されている。MFP200に接続されているこれら各装置は、MFP200のオペレーションシステムにより、USBキーボード型のデバイスに分類される。すなわち、USBキーボード、およびUSBキーボードエミュレートリーダーは、いずれもUSBキーボード形式の出力データをMFP200に出力するようになっている。USBキーボードから入力される当該USBキーボードに対するキー操作内容キーストロークに応じた情報はユーザーインターフェース218として備えられる操作パネルに表示され、USBキーボードエミュレートリーダーからの情報キーストロークはログイン管理部図示せずに送られる。なお、MFP200がコンピュータ装置120を備えている構成であってもよい。1-3.マルチキーボードの概要およびシーケンス図3は、マルチキーボード装置構成における処理シーケンスを示す説明図である。すなわち、図3は、USBサブシステム301、キーボードドライバーデバイスドライバー302、キーボードマネージャーデバイスマネージャー303、およびキーボード装置から受信したキーボードイベントデータキーボード操作情報に応じた処理を行うアプリケーション304を有する典型的なシステムの例を示している。なお、各デバイス管理スレッドの特性に応じて図3の処理シーケンスを適宜変更してもよい。図3に示した、複数のUSBキーボード装置複数のUSBデバイスが接続されたシステムコンピュータ装置120またはMFP200では、以下に示す各工程a~tのうちの一部または全部が実行される。aUSBサブシステム301例えばデバイスインターフェース126またはインターフェース制御部204が装着されたUSBデバイスキーボード装置を検出する処理311。bUSBサブシステム301がUSBデバイスドライバーキーボードドライバー302に検出したUSBデバイスを通知する処理312。cUSBサブシステム301が装着されたUSBデバイスの装置特性例えば、デバイス名、デバイスID、デバイスタイプ、キーバッファー、製造者ID、製品ID、デバイス記述子などをUSBデバイスドライバー302に提供する処理。dUSBデバイスドライバー302がデバイス入出力ハンドル例えばdevHandle、すなわち当該USBデバイスとの間のデータの入出力処理において使用するファイルおよび情報を識別するためのハンドルデバイス管理ハンドルを生成する処理313。なお、ハンドルとは、ある処理を行うために用いられるオブジェクトメモリ上に実体を有するファイル、スレッド、各種情報等を識別するための値である。すなわち、本明細書におけるデバイス入出力ハンドルは、当該デバイス入出力ハンドルに対応するUSBデバイスに対するデータの入出力処理を行うために用いられるファイルおよび情報を識別するためのものである。eUSBデバイスドライバー302が装着されたUSBデバイスを照合データベースと比較照合する処理、すなわち、装着されたUSBデバイスのデバイスIDとデバイス照合データベースに登録されているデバイスIDとを照合する処理314。f装着されたUSBデバイスがデバイス照合データベースに登録されているデバイスと一致する場合に、USBデバイスドライバー302が当該USBデバイスに対応付けられたデバイスマネージャーハンドル例えばkeyHandle、すなわち当該USBデバイスから入力されるデータの管理処理において使用するファイルおよび情報を識別するためのハンドルデバイス管理ハンドルを生成する処理310。gUSBデバイスドライバー302が上記の新たなデバイスマネージャーハンドルに対応付けられたデバイス管理スレッド例えばKeyManを生成する処理320。なお、スレッドとはソフトウェアの実行単位であり、複数のスレッドが存在する場合には各スレッドによって制御部CPU等を交互に占有される。これにより、複数のスレッドに対応するソフトウェアが並行して実行される。すなわち、本明細書におけるデバイス管理スレッドは、当該デバイス管理スレッドに対応するUSBデバイスから入力されるデータに対する処理のためにコンピュータ装置120の制御部124あるいはMFP200の制御部208が占有される期間を他の処理を行うためにコンピュータ装置120の制御部124あるいはMFP200の制御部208が占有される期間と異ならせるためのものである。hUSBデバイスマネージャー303がアプリケーションハンドル例えばkeyHandleを生成する処理。iアプリケーション304がアプリケーションハンドルおよびイベント例えばeventを登録する処理。なお、イベントとしては、例えば、USBデバイスの着脱操作、USBデバイスからのデータ入力USBデバイスに対するキーストローク操作等、ユーザーからのUSBデバイスに記憶されているデータの読み出し指示などが挙げられる。jUSBデバイスマネージャー303がUSBデバイスを開く処理330。kUSBデバイスマネージャー303がUSBデバイスドライバー302からデータ341を読み出す処理340,341。lUSBデバイスが取り外されたときに、USBデバイスドライバー302がその後のUSBデバイスからのデータ読み出し時にエラー信号をUSBデバイスマネージャー303へ出力する処理350。mUSBデバイスマネージャー303がアプリケーション304にUSBデバイスイベント例えばUSBデバイスからのデータ入力などを通知する処理305、および当該通知に対応してアプリケーション304がUSBデバイスマネージャー303にデータ読み取り指示を送り、USBデバイスマネージャー303からデータを受け取る処理。nUSBデバイスマネージャー303がUSBデバイスドライバー302から送信されたエラー信号を検出する処理。oUSBデバイスマネージャー303がUSBデバイスドライバー302から送信されたエラー信号に基づいてUSBデバイスを閉じる処理360。pUSBデバイスドライバー302がデバイス入出力ハンドル例えばdevHandleを開放削除する処理370。qUSBデバイスマネージャー303がアプリケーション304にエラー信号を送る処理381。rアプリケーション304がエラー信号に基づいてUSBデバイスマネージャー303を閉じる処理380。sUSBデバイスマネージャー303を閉じることにより、メモリーを解放する処理382。tアプリケーション304がデバイス管理スレッド例えばkeyHandleを削除する処理390。なお、USBデバイスドライバー302、USBデバイスマネージャー303、およびアプリケーション304の各処理は、例えば、図1に示したコンピュータ装置120の制御部124、あるいは図2に示したMFP200の制御部208によって行われる。ただし、これに限らず、これらの処理の一部または全部をコンピュータ装置120またはMFP200の他の部材が行うようにしてもよい。1-4.キーボード装置USBデバイスの構成本発明の典型的な実施例では、1または複数のキーボード装置USBデバイスがコンピュータ装置120あるいはMFP200に接続され、コンピュータ装置120の制御部124あるいは図2に示したMFP200の制御部208において、接続されたキーボード装置USBデバイスに応じたUSB階層構造が形成される。図4aは単一のキーボード装置第1キーボード装置410が接続された場合に形成されるキーボード機能構成USB階層構造400を示す説明図である。この図に示すように、キーボード機能構成400には、アプリケーション層401、第1キーボード装置マネージャーUSBデバイスマネージャー402、システム入出力部403、キーボードドライバー404、およびUSB入出力部405が含まれる。USB入出力部405は、デバイスインターフェース126あるいはインターフェース制御部204を制御し、キーボード装置USBデバイスとの間のデータの送受信を行わせる。キーボードドライバー404は、上述した図3のUSBデバイスドライバー302の処理を行う。システム入出力部403は、キーボードドライバー404と第1キーボード装置マネージャーUSBデバイスマネージャー402との間のデータの授受を制御する。第1キーボード装置マネージャーUSBデバイスマネージャー402は、上述した図3のUSBデバイスマネージャー303の処理を行う。アプリケーション層401は、上述した図3のアプリケーション304の処理を行う。キーボード装置から入力されるデータキーストロークデータは、最下層のUSB入出力部405からキーボード機能構成400に入力され、最終的に最上層のアプリケーション層401例えばユーザーインターフェースUIアプリケーションへ送られる。具体的には、キーボード装置USBデバイスを介したユーザー入力は、USB入出力部405から、キーボードドライバー404およびシステム入出力部403からなるアプリケーションプログラムインターフェースAPI、および第1キーボード装置マネージャー402例えばkeyboarddevice1managerを経由して最上層のアプリケーション層401例えばUIアプリケーションへ送られる。アプリケーション層401が、第1キーボード装置マネージャー402からAPIを介して送られてくるイベント通知の登録処理を行い、アプリケーション層401がAPIを介してキーストロークデータを取得するようにしてもよい。より詳細には、第1キーボード装置マネージャー402がアプリケーション層401の指示に応じて入出力サブシステムUSBサブシステム。例えばUSB入出力部405、キーボードドライバー404、およびシステム入出力部405。からキーストロークデータを取得する。第1キーボード装置マネージャー402は、入出力サブシステムにデータの読み出しを行うキーボード装置、および当該データを記憶するキーストロークバッファに対してキーボード装置名を通知する。そして、キーストロークデータを取得した後、第1キーボード装置マネージャー402は、登録されているアプリケーションにデータイベントを通知する。デバイス管理スレッドは、自身に対応するメモリー、システムリソース、および変数を有しており、各デバイス管理スレッドは対応するデバイス管理ハンドル当該デバイス管理ハンドルに対応するUSBデバイスの管理に用いられるファイルおよび情報を識別するための情報内にこれらの変数を記憶させる。すなわち、各デバイス管理スレッドに対応する新たなデバイス管理ハンドルがデバイス管理スレッド毎に生成され、生成されたデバイス管理ハンドルはアプリケーションが特定のキーボード装置USBデバイスにアクセスするため例えば特定のキーボード装置USBデバイスから入力されるデータを処理あるいは管理するために用いられる。1-5.キーボードマネージャーキーボードマネージャーUSBデバイスマネージャーの仕事は、USBサブシステムからデータを取得し、取得したデータを上層のアプリケーション層に渡すことである。複数のキーボード装置をサポートするために、各キーボード装置について専用のデバイス管理スレッドが生成される。すなわち、各デバイス管理スレッドは接続された特定のキーボード装置USBデバイスを管理するために用いられる。各デバイス管理スレッドは、キーボード装置が装着されたときに動的に生成されてもよい。また、各デバイス管理スレッドは、キーボード装置が取り外されたときに削除されてもよい。各デバイス管理スレッドは、管理対象のキーボード装置USBデバイスを個別に識別し、当該キーボード装置からのキーストローク入力データを、当該キーストロークを処理するアプリケーションに提供する。図4bは、複数のキーボード装置USBデバイスが接続された場合のキーボード機能構成デュアルキーボード構成420を示す説明図である。例えば、第1アプリケーション421ApplicationAはUSB入出力部427を介して第1キーボード装置431deviceAから入力されるキーストロークを受け取り、第2アプリケーション422ApplicationBはUSB入出力部427を介して第2キーボード装置432deviceBから入力されるキーストロークを受け取る。第1アプリケーション421は第1キーボード装置マネージャー423を介してアプリケーションプログラムインターフェースAPIに接続され、第2アプリケーション422は第2キーボード装置マネージャー424を介してアプリケーションプログラムインターフェースAPIに接続されている。1-6.キーボードのタイプキーボードのタイプは、マルチキーボード複数のキーボードをサポート可能にするための要素である。タイプKEYBOARDはキーボードを識別するために定義され、タイプREADERはリーダー読取装置を識別するために定義されている。各デバイス管理スレッドは、管理するUSBデバイスのタイプを識別し、識別したタイプを示す情報例えばデバイス入出力ハンドルをアプリケーションに提供する例えばデバイス管理ハンドルを介して提供する。キーボードドライバーUSBデバイスドライバー426はシステム入出力部425にキーボード装置USBデバイスが接続されたときにそのキーボード装置のタイプを識別する。また、キーボードドライバー426は、上記識別結果を示す識別情報をデバイス装着通知工程においてキーボード装置マネージャーに提供する。1-7.USBデバイスの照合図5は、コンピュータ装置120あるいはMFP200によって監視されるキーボード装置USBデバイスを識別するためのデバイス照合データベースを用いた照合処理の流れを示す説明図である。USBサブシステムは、複数のUSBデバイスを検出した場合、USBデバイス例えばキーボード装置の設定情報510と、デバイス照合データベース520の照合基準情報とを比較し、一致するか否か、すなわち検出したUSBデバイスがデバイス照合データベース520に登録されているか否かを判断する。デバイス照合データベース520に一致するUSBデバイスが登録されていた場合、当該USBデバイスは内部の一致リスト540に加えられるとともに、当該USBデバイスのためのデバイス管理スレッド550が生成される。デバイス照合データベース520は例えばXMLファイル形式であってもよい。また、上記XMLファイルを修正することによって登録情報を追加できるようにしてもよく、システム管理機能によって登録情報を動的に付加できるようにしてもよい。コンピュータ装置120あるいはMFP200が、新規に装着されたキーボード装置USBデバイスを検知した場合、USBサブシステムによって検知された当該キーボード装置の情報は当該キーボード装置の管理ページに提示される。コンピュータ装置120あるいはMFP200が当該キーボード装置を上記デバイス照合データベースに自動的に加えるようにしてもよい。これにより、コンピュータ装置120あるいはMFP200は、互いに識別可能な複数のキーボード装置から入力されるキーストロークデータを当該キーボード装置に応じた適切なアプリケーションに送ることができる。1-8.デバイス管理ハンドル図6は、デバイス管理スレッドに固有のデバイス管理ハンドルを用いたキーボード管理インターフェースの概略構成を示す説明図である。ユーザーインターフェースのアプリケーション610は、キーボードマネージャーUSBデバイスマネージャー620からAPIを介して取得したイベント通知623の登録処理を行い、キーストロークデータ621を取得する。なお、上記イベントとしては、例えば、USBデバイスの着脱操作、USBデバイスからのデータ入力USBデバイスに対するキーストローク操作等、ユーザーからのUSBデバイスに記憶されているデータの読み出し指示などが挙げられる。アプリケーション610は、キーボードマネージャー620に、データおよびイベントを取得するキーボード装置USBデバイスに関連付けたキーボードハンドルデバイス管理ハンドル640を提供する611。なお、デバイス管理ハンドルとは、当該USBデバイスとの間のデータの入出力処理において使用するファイルおよび情報を識別するための情報である。また、キーボードハンドルとはキーボードを識別するための値情報であり、デバイスハンドルとはUSBデバイスを識別するための値情報である。キーボードマネージャー620は、入出力サブシステム630からキーストロークデータ631を取得する622。キーボードマネージャー620は、入出力サブシステム630およびキーストロークバッファに、データの読み出しを行うUSBデバイスのデバイスハンドルデバイス管理ハンドルを通知する。キーストロークデータを取得した後、キーボードマネージャー620は当該データを処理し、アプリケーション610にデータイベント623を通知する。デバイス管理スレッドは、当該デバイス管理スレッド毎に割り当てられたメモリー、システムリソース、および変数を利用する。これらの変数はデバイス管理ハンドル内に記憶される。新たなデバイス管理ハンドル640は各デバイス管理スレッドについてそれぞれ生成される。このデバイス管理ハンドル640は、アプリケーション610によって特定のキーボード装置USBデバイスにアクセスするために用いられる。デバイス管理ハンドル640により、複数のデバイス管理スレッドの適用が可能になる。デバイス管理ハンドル640は、USBサブシステムが当該デバイス管理ハンドルに対応するキーボード装置USBデバイスを検出したときに生成あるいは発生させられる。また、デバイス管理ハンドル640は、アプリケーションが当該デバイス管理ハンドル640に対応するデバイス管理スレッドからのサービスを必要としなくなったときに削除される。デバイス管理ハンドル640は、デバイス管理スレッドを生成する前に動的に割り付けられてもよい。デバイス管理ハンドル640のメモリーは、デバイス管理スレッドに固有の情報およびデバイス名を含めるために初期化されてもよい。デバイス管理ハンドル640は、その後、タスクエントリーでキーボードマネージャー620に渡されてもよく、キーストロークデータの登録処理を行うアプリケーション610によって利用可能にされてもよい。デバイス管理ハンドル640内の情報には、aデバイス名、bデバイスID、cデバイスタイプ、dキーバッファー、およびeシステムリソースが含まれていてもよい。キーボードマネージャー620は、デバイス管理ハンドル640内に含められたシステムリソースを初期化する。上記初期化には、典型的には、メモリーバッファーを割り当てる処理、および装着されたデバイスを特定するための信号を生成する処理が含まれる。1-9.USBデバイスドライバーキーボードマネージャーUSBデバイスマネージャーは、キーボードドライバーUSBデバイスドライバーを介してキーボード装置USBデバイスからデータを受け取る。USBデバイスドライバーの入出力機能は、システム入出力機能読み出し、書き込み、開く、閉じる、および入出力制御ioctlを内部的にマッピングしたものである。システムコンピュータ装置120あるいはMFP200にUSBデバイスが装着された場合、USBデバイスドライバーは、装着されたUSBデバイスに対応する新たなデバイス入出力ハンドルデバイス管理ハンドル、および当該デバイス入出力ハンドルに対応付けられたUSBデバイス名例えばusbKb0を生成する。上記USBデバイス例えばキーボード装置などは、その後、上記USBデバイスドライバーによって管理される内部デバイスリストに追加される。USBデバイスドライバーは、上記デバイス入出力ハンドル内部キーボード入出力デバイスハンドルの管理に加えて、装着されたUSBデバイスに関連付けたデバイスマネージャーハンドルデバイス管理ハンドルを生成し、当該デバイスマネージャーハンドルに上記デバイス入出力ハンドルの参照情報を記憶する。上記各ハンドルの生成に加えて、当該各ハンドルを初期化し、上記USBデバイスを管理するためのデバイス管理スレッドを生成してもよい。USBデバイスが取り外された場合、USBデバイスドライバーがメモリーを解放し、当該USBドライバーが管理する内部デバイスリストから当該USBデバイスを削除するようにしてもよい。1-10.アプリケーションインターフェースアプリケーションは、USBデバイスマネージャーで登録されたキーストロークを受け取る。これを行うために、アプリケーションは、アプリケーションの提供するサービスのイベントのリストを生成するためにUSBデバイスマネージャーによって提供される一般的なAPIを活用する。適切なデバイス管理スレッドのデバイス管理ハンドルに基づいてデバイス管理スレッドの識別が行われる。イベントの登録をするために、アプリケーションが、登録するべきデバイス管理スレッドを識別するためのイベントのリストを提供するようにしてもよい。アプリケーションがデバイス管理ハンドルを取得する処理は典型的にはタスクエントリーの段階で行われる。例えば、デバイス管理スレッド自身を用いてアプリケーションスレッドを生成し、アプリケーションタスクエントリーでそのデバイス管理ハンドルを生成するようにしてもよい。あるいは、アプリケーションがデバイス管理ハンドルを取得する処理は、USBデバイスマネージャーが動作中の全デバイス管理スレッドのリストを維持し、一般的なAPIを介してこのリストを提供することによって行われてもよい。以上のように、本実施形態にかかるコンピュータ装置120あるいはMFP200は、複数のUSBポートを有しており、各USBポートに接続された各USBデバイスのデバイスIDを取得し、取得したデバイスIDがキーボード装置と同じ出力信号形式でデータ出力を行うUSBデバイスのデバイスIDが登録されたデバイス照合データベースに含まれているデバイスIDの中に存在するか否かを照合し、デバイス照合データベースに一致するデバイスIDが登録されている場合に、当該デバイスIDに対応するUSBデバイスから入力されるデータに対する処理のために制御部124あるいは制御部208が占有される期間を、他の処理を行うために制御部124あるいは制御部208が占有される期間と異ならせるためのデバイス管理スレッドを生成する。これにより、キーボード装置と上記キーボード装置と同じ出力信号形式でデータを出力する他のUSBデバイスとが接続された場合であっても、これら各USBデバイス装置キーボード装置および他のUSBデバイスからの入力データが混ざり合ってしまうことを防止し、各USBデバイスから入力されるデータをUSBデバイス毎に適切に処理することができる。なお、本実施形態において、コンピュータ装置120の制御部124あるいはMFP200の制御部208を、CPU等のプロセッサーを用いてソフトウェアによって実現してもよい。この場合、コンピュータ装置120の制御部124あるいはMFP200の制御部208は、各機能を実現する制御プログラムの命令を実行するCPUcentralprocessingunit、上記プログラムを格納したROMreadonlymemory、上記プログラムを展開するRAMrandomaccessmemory、上記プログラムおよび各種データを格納するメモリー等の記憶装置記録媒体などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるコンピュータ装置120あるいはMFP200の制御プログラムのプログラムコード実行形式プログラム、中間コードプログラム、ソースプログラムをコンピュータで読み取り可能に記録した記録媒体を、コンピュータ装置120あるいはMFP200に供給し、そのコンピュータまたはCPUやMPUが記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー登録商標ディスク/ハードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD/CD-R等の光ディスクを含むディスク系、ICカードメモリカードを含む/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリー系などを用いることができる。また、コンピュータ装置120あるいはMFP200を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網virtualprivatenetwork、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth登録商標、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。また、コンピュータ装置120の制御部124あるいはMFP200の制御部208は、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。"