(57)【要約】  USB装置の駆動およびマッチング情報を修正する方法および装置を開示する。この方法および装置は、USB装置分野に関し、装置のPIDまたはポート番号が変更された後でも、駆動およびマッチングファイルを修正することなく、装置に対応するドライバソフトウェアを判定することもできる。この方法は、以下を含む。すなわち、プラグアンドプレイマネージャが、照会装置情報要求を物理装置オブジェクトに送信すると、フィルタドライバが、照会装置情報要求を捕獲し、照会装置情報要求を列挙ドライバに送信する。フィルタドライバが、照会装置情報要求に従って、列挙ドライバによって返された装置情報を受信し、返された装置情報および装置の互換可能情報による、製造元識別、装置のサブクラスおよびプロトコルタイプを含む装置ドライバマッチストリングを構成し、構成した装置ドライバマッチストリングをプラグアンドプレイマネージャに送信する。
2013512516.tif 000002
【特許請求の範囲】
【請求項１】
USB装置ドライバマッチングストリングを修正する方法であって、
プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバによって、装置情報を照会する前記要求を捕捉し、装置情報を照会する前記捕捉要求を列挙ドライバに送信するステップと、
装置情報を照会する前記要求に従って、前記列挙ドライバによって返された装置情報を前記フィルタドライバによって受信し、前記返された装置情報および前記装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するステップと、
前記形成された装置ドライバマッチングストリングを前記プラグアンドプレイマネージャに送信するステップとを含む方法。
【請求項２】
前記フィルタドライバが、前記返された装置情報および前記装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成する前に、前記方法が、
前記装置の前記互換性情報を取得するために、前記フィルタドライバによって、前記装置の互換性情報を照会する要求を前記物理装置オブジェクトに送信するステップであって、前記装置の前記互換性情報が、装置クラス、装置サブクラス、および装置プロトコルタイプを含むステップをさらに含む、請求項1に記載の方法。
【請求項３】
装置情報を照会する前記捕捉要求を前記列挙ドライバに送信する前に、前記方法が、
装置情報を照会する前記捕捉要求に関して完了コールバック関数を登録し、そうすることによって前記列挙ドライバが、装置情報を照会する前記要求に従って、前記装置情報を返すと、前記装置情報および前記互換性情報に従って前記装置ドライバマッチングストリングを形成する操作を実施するために前記登録された完了コールバック関数が呼び出されるステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記フィルタドライバが、装置情報を照会する前記要求を捕捉する前に、前記方法が、
前記プラグアンドプレイマネージャが、装置リストを照会する要求を送信すると、前記フィルタドライバによって、装置リストを照会する前記要求を捕捉し、装置リストを照会する前記捕捉要求を前記列挙ドライバに送信するステップと、
前記列挙ドライバによって、装置リストを照会する前記要求に従って返される装置リストを前記フィルタドライバによって受信し、前記装置リスト中の各装置用のフィルタ装置オブジェクトを前記装置リストに従って作成し、前記作成したフィルタ装置オブジェクトを、対応する子装置スタックに追加し、そうすることによって前記フィルタドライバが、前記子装置スタック中の前記フィルタ装置オブジェクトに従って、装置情報を照会する前記要求を捕捉するステップとをさらに含む、請求項1に記載の方法。
【請求項５】
前記装置情報がストリングの形であり、前記装置情報が、装置ベンダ識別子、製品識別子、および製品ポート番号を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
USB装置ドライバマッチングストリングを修正する機器であって、
プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、装置情報を照会する要求を捕捉するように構成された情報要求捕捉モジュールと、
前記情報要求捕捉モジュールによって捕捉された、装置情報を照会する前記要求を列挙ドライバに送信するように構成された情報要求送信モジュールと、
前記列挙ドライバによって、装置情報を照会する前記要求に従って返される装置情報を受信するように構成された情報受信モジュールと、
前記返された装置情報および前記装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するように構成された形成モジュールと、
前記形成モジュールによって形成された前記装置ドライバマッチングストリングを前記プラグアンドプレイマネージャに送信するように構成されたストリング送信モジュールとを備える機器。
【請求項７】
前記装置ベンダ識別子、前記装置サブクラス、および前記装置プロトコルタイプを含む前記装置ドライバマッチングストリングが、前記返された装置情報および前記装置の前記互換性情報に従って形成される前に、前記装置の前記互換性情報を取得するために、前記装置の前記互換性情報を照会する要求を前記物理装置オブジェクトに送信するように構成された互換性情報取得モジュールであって、前記互換性情報が、装置クラス、装置サブクラス、および装置プロトコルタイプを含む互換性情報取得モジュールをさらに備える、請求項6に記載の機器。
【請求項８】
前記情報要求送信モジュールが、装置情報を照会する前記捕捉要求を前記列挙ドライバに送信する前に、装置情報を照会する前記要求に対する完了コールバック関数を登録するように構成された登録モジュールであって、そうすることによって、前記列挙ドライバが、装置情報を照会する前記要求に従って、前記装置情報を返すと、前記装置情報および前記互換性情報に従って前記装置ドライバマッチングストリングを形成する操作を実施するために、前記登録された完了コールバック関数が呼び出される、登録モジュールをさらに備える、請求項6に記載の機器。
【請求項９】
装置情報を照会する前記要求が捕捉される前に、前記プラグアンドプレイマネージャが、装置リストを照会する要求を送信すると、前記装置リストを照会する要求を捕捉するように構成されたリスト要求捕捉モジュールと、
前記リスト要求捕捉モジュールによって捕捉された、装置リストを照会する前記要求を前記列挙ドライバに送信するように構成されたリスト要求送信モジュールと、
前記列挙ドライバによって、装置リストを照会する前記要求に従って返される装置リストを受信するように構成されたリスト受信モジュールと、
前記リスト受信モジュールによって受信された前記装置リストに従って、前記装置リスト中の各装置用のフィルタ装置オブジェクトを作成するように構成された作成モジュールと、
子装置スタック中の前記フィルタ装置オブジェクトに従って、装置情報を照会する前記要求を捕捉するように、前記作成モジュールによって作成された前記フィルタ装置オブジェクトを、対応する子装置スタックに追加するように構成された追加モジュールとをさらに備える、請求項6に記載の機器。
【請求項１０】
前記装置情報がストリングの形であり、前記装置情報が、装置ベンダ識別子、製品識別子、および製品ポート番号を含む、請求項6から9のいずれか一項に記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、USB装置分野に関し、詳細には、USB装置ドライバマッチング情報を修正する方法および機器に関する。
本出願は、参照によってその全体が本明細書に組み込まれている、2009年12月2日に中国専利局に出願した、「METHOD AND APPARATUS FOR MODIFYING USB DEVICE DRIVER MATCHING INFORMATION」という名称の中国特許出願第CN 200910249779.X号に対する優先権を主張する。
【背景技術】
【０００２】
USB(Universal Serial Bus、ユニバーサルシリアルバス)仕様によると、USB装置の装置ドライバマッチングストリングは主に、以下の3つの形式を有する。すなわち、第1の形式は、vid(vendor identification、ベンダ識別子)、PID(product identification、製品識別子)、およびMI(マルチインタフェース、製品ポート)番号によって形成され、vid_xxxx&pid_yyyy&mi_zzの形で表される。第2の形式は、vid、サブクラス(装置サブクラス)、およびプロトコル(装置プロトコルタイプ)によって形成され、vid_xxxx&subclass_yy&prot_zzの形で表される。第3の形式は、クラス(装置クラス)、サブクラス、およびプロトコルによって形成され、class_xx&subclass_yy&prot_zzの形で表される。
【０００３】
第1の形式および第2の形式に対して、vidは、異なるベンダを識別するのに使われ得る。ただし、ウィンドウズ(登録商標)システムは、第2の形式をサポートせず、第3の形式は各ベンダを識別することができない。したがって、各OEM(original equipment manufacturer、相手先商標製品の製造会社)によって製造されるUSB装置のほとんどの装置ドライバマッチングストリングは、第1の形式の装置ドライバマッチングストリングを使う。さらに、各ベンダは概して、同じ種類のすべての製品に利用可能なドライバ群をもち、同じ種類の製品は、異なるPIDを使って区別される。
【０００４】
装置ドライバが装置に正しくマッチすることを可能にするためには、この種類の装置に対応する装置ドライバマッチングストリングリストが、オペレーティングシステムにおいて予め設定される必要がある。装置がドライバを必要とするときは、装置の装置ドライバマッチングストリングを取得し、装置ドライバマッチングストリングに対応する装置ドライバを求めて装置ドライバマッチングストリングリストを検索するだけでよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
装置ドライバのマッチングを実行するプロセスにおいて、本発明者は、従来技術には少なくとも以下の問題があることに気づいた。すなわち、第1の形式の装置ドライバマッチングストリングの欠陥は、装置ドライバマッチングストリングが装置のPIDに限定されることであり、PIDが変更されると、ドライバマッチングファイルが修正される必要があり、保守および認証のコストが増大することである。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、USB装置ドライバマッチング情報を修正する方法および機器を提供し、そうすることによって、装置のPIDまたはポート番号が変更された後でも、ドライバマッチングファイルを修正することなく、装置に対応するドライバを依然として判定することができ、ドライバの保守および認証のコストが節約される。
【０００７】
上述の目的を達成するために、本発明の実施形態は、以下の技術ソリューションを提供する。
【０００８】
USB装置ドライバマッチング情報を修正する方法は、プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバによって、装置情報を照会する要求を捕捉し、装置情報を照会する捕捉要求を列挙ドライバに送信すること、装置情報を照会する要求に従って、列挙ドライバによって返された装置情報をフィルタドライバによって受信し、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成すること、ならびに形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信することを含む。
【０００９】
USB装置ドライバマッチング情報を修正する機器は、プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、装置情報を照会する要求を捕捉するように構成された情報要求捕捉モジュールと、情報要求捕捉モジュールによって捕捉された、装置情報を照会する要求を列挙ドライバに送信するように構成された情報要求送信モジュールと、列挙ドライバによって、装置情報を照会する要求に従って返される装置情報を受信するように構成された情報受信モジュールと、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するように構成された形成モジュールと、形成モジュールによって形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信するように構成されたストリング送信モジュールとを含む。
【００１０】
本発明の技術ソリューションにおいて、フィルタドライバは、列挙ドライバに追加される。プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバは、装置情報を照会する要求を捕捉する。さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返した後、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成され、形成された装置マッチングストリングが、プラグアンドプレイマネージャに送信される。このようにして、オペレーティングシステムが、装置ドライバマッチングストリング中のベンダ識別子、装置サブクラス、および装置プロトコルタイプについての情報に従って、装置ドライバプログラムのマッチングを実行することができる。従来技術と比較して、本発明のこの技術ソリューションでは、装置ベンダにとっては、同じ種類の装置用のドライバプログラムのマッチングを実行するために、装置ドライバプログラムの装置ドライバマッチングストリングのみが、装置サブクラスおよび装置プロトコルタイプに従って編集される必要がある。続いて、同じ種類の装置の製品識別子または製品ポート番号がどのように変更されたとしても、同じ種類の装置の装置ドライバマッチングストリングは、編集し直される必要がない。このようにして、同じ種類の製品または同じ種類のポートの装置ドライバマッチングストリングは、一度だけ生成され、再利用されるので、大量生産におけるドライバの保守および認証のコストを大幅に節約することができる。
【００１１】
本発明の実施形態による、または従来技術における技術ソリューションをより明らかにするために、実施形態または従来技術を示す添付の図面について、以下で手短に説明する。明らかなように、以下の説明における添付の図面は、本発明の一部の実施形態に過ぎず、当業者は、創造的努力を行うことなく、こうした添付の図面から、他の添付の図面を導き出すことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第1の実施形態による、USB装置ドライバマッチングストリングを修正する方法を示すフローチャートである。
【図２】本発明の第2の実施形態による、USB装置ドライバマッチングストリングを修正する方法を示すフローチャートである。
【図３】本発明の第3の実施形態による、USB装置ドライバマッチングストリングを修正する機器を示すブロック図である。
【図４】本発明の第4の実施形態による、USB装置ドライバマッチングストリングを修正する機器を示すブロック図である。
【発明を実施するための形態】
【００１３】
本発明の技術ソリューションを、これ以降で添付の図面を参照して明確および完全に記載する。明らかなように、後で説明する実施形態は例示に過ぎず、本発明のすべての実施形態をカバーするわけではない。当業者は、創造的努力を全く行うことなく、本明細書に挙げる実施形態から、他の実施形態を導き出すことができ、このようなすべての実施形態は、本発明の保護範囲でカバーされる。
【００１４】
実施形態1
本発明の第1の実施形態は、USB装置ドライバマッチングストリングを修正する方法を提供する。図1に示すように、この方法は、以下を含む。
【００１５】
ステップ101:プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバが、装置情報を照会する要求を捕捉し、装置情報を照会する捕捉要求を列挙ドライバに送信し、ここでフィルタドライバは、列挙ドライバに新たに追加されたドライバプログラムである。
【００１６】
装置情報を照会する捕捉要求は、列挙ドライバに送信され、そうすることによって列挙ドライバは、照会要求に従って装置情報を返し、ここで、列挙ドライバによって返された装置情報はストリングの形であり、装置情報は、装置ベンダ識別子、製品識別子、および製品ポート番号を含んでよく、装置情報は、vid_xxxx&pid_yyyy&mi_zzの形で表すことができる。
【００１７】
ステップ102:フィルタドライバは、装置情報を照会する要求に従って列挙ドライバによって返された装置情報を受信し、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成し、ここで装置ドライバマッチングストリングは、vid_xxxx&subclass_yy&prot_zzの形で表すことができる。
【００１８】
装置の互換性情報はストリングの形であり、互換性情報は、装置クラス、装置サブクラス、および装置プロトコルタイプを含んでよく、互換性情報は、class_xx&subclass_yy&prot_zzの形で表すことができる。フィルタドライバが、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成する前に、フィルタドライバは、装置の互換性情報を照会する要求を物理装置オブジェクトに送信することによって、装置の互換性情報を取得することができる。
【００１９】
ステップ103:形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信し、そうすることによって、プラグアンドプレイマネージャが、形成された装置ドライバマッチングストリングに従って、物理装置にマッチするドライバプログラムを見つける。
【００２０】
本発明のこの実施形態において、フィルタドライバは、列挙ドライバに追加される。プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバは、装置情報を照会する要求を捕捉する。さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返した後、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成され、形成された装置ドライバマッチングストリングが、プラグアンドプレイマネージャに送信される。このようにして、オペレーティングシステムが、装置ドライバマッチングストリング中のベンダ識別子、装置サブクラス、および装置プロトコルタイプについての情報に従って、装置ドライバプログラムのマッチングを実行することができる。従来技術と比較して、本発明のこの技術ソリューションでは、装置ベンダにとっては、同じ種類の装置用のドライバプログラムのマッチングを実行するために、装置ドライバプログラムの装置ドライバマッチングストリングのみが、装置サブクラスおよび装置プロトコルタイプに従って編集される必要がある。続いて、同じ種類の装置の製品識別子または製品ポート番号がどのように変更されたとしても、同じ種類の装置の装置ドライバマッチングストリングは、編集し直される必要がない。このようにして、同じ種類の製品または同じ種類のポートの装置ドライバマッチングストリングは、一度だけ生成され、再利用されるので、大量生産におけるドライバの保守および認証のコストが大幅に節約され得る。
【００２１】
実施形態2
本発明の第2の実施形態は、USB装置ドライバマッチングストリングを修正する方法を提供する。図2に示すように、この方法は、以下を含む。
【００２２】
ステップ201:プラグアンドプレイマネージャが、装置リストを照会する要求を送信すると、フィルタドライバが、装置リストを照会する要求を捕捉し、装置リストを照会する捕捉要求を列挙ドライバに送信し、ここでフィルタドライバは、列挙ドライバに新たに追加されたドライバプログラムである。
【００２３】
装置リストを照会する捕捉要求は、列挙ドライバに送信され、そうすることによって列挙ドライバは、装置リストを照会する要求に従って、すべての装置を列挙し、列挙された装置すべてからなる装置リストをプラグアンドプレイマネージャに返す。さらに、装置リストを照会する要求に従って、列挙ドライバが装置すべてを列挙する操作が終了したことがフィルタドライバに分かるようにするために、装置リストを照会する要求が捕捉された後で、完了コールバック関数が、装置リストを照会する要求に関して登録され得る。
【００２４】
ステップ202:列挙ドライバが、装置リストを照会する要求に従って装置リストを返すと、フィルタドライバは、装置リストを照会する要求に従って列挙ドライバによって返された装置リストを受信し、装置リスト中の各装置用のフィルタ装置オブジェクトを装置リストに従って作成し、作成したフィルタ装置オブジェクトを、対応する子装置スタックに追加する。
【００２５】
さらに、列挙ドライバが、装置リストを照会する要求に従って装置リストを返すと、システムは、以下の操作を実施するように、装置リストを照会する要求に関して登録された完了コールバック関数を自動的に呼び出すことができる。すなわち、フィルタドライバが、装置リスト中の各装置用のフィルタ装置オブジェクトを、列挙ドライバによって返された装置リストに従って作成し、作成したフィルタ装置オブジェクトを、対応する子装置スタックに追加する。このようにして、新たに追加されたフィルタドライバが、子装置スタック中のフィルタ装置オブジェクトに従って、プラグアンドプレイマネージャによって送信された、装置情報を照会する要求を捕捉することができ、列挙ドライバによって返された装置情報を修正することができるように保証され得る。
【００２６】
ステップ203:列挙ドライバによって返された装置リストをプラグアンドプレイマネージャに送信し、そうすることによってプラグアンドプレイマネージャは、装置リストに従って、装置情報を照会する要求を装置リスト中の物理装置オブジェクトに送信する。
【００２７】
ステップ204:プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバは、装置情報を照会する要求を捕捉し、装置情報を照会する捕捉要求を列挙ドライバに送信する。
【００２８】
装置情報を照会する捕捉要求は、列挙ドライバに送信され、そうすることによって列挙ドライバは、照会要求に従って装置情報を返し、ここで、列挙ドライバによって返された装置情報はストリングの形であり、装置情報は、装置ベンダ識別子、製品識別子、および製品ポート番号を含んでよく、装置情報は、vid_xxxx&pid_yyyy&mi_zzの形で表すことができる。さらに、装置情報を照会する要求に従って、列挙ドライバが装置情報を列挙する操作が終了したことがフィルタドライバに分かるようにするために、装置情報を照会する要求が捕捉された後で、装置情報を照会する要求に関して完了コールバック関数が登録され得る。
【００２９】
ステップ205:列挙ドライバが、装置情報を照会する要求に従って装置情報を返すと、フィルタドライバは、列挙ドライバによって返された装置情報を受信し、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成し、ここで装置ドライバマッチングストリングは、vid_xxxx&subclass_yy&prot_zzの形で表すことができる。
【００３０】
さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返すと、システムは、装置情報を照会する要求に関して登録された完了コールバック関数を自動的に呼び出して、以下の操作を実施することができる。すなわち、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成される。
【００３１】
装置の互換性情報はストリングの形であり、互換性情報は、装置クラス、装置サブクラス、および装置プロトコルタイプを含んでよく、互換性情報は、class_xx&subclass_yy&prot_zzの形で表すことができる。フィルタドライバが、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成する前に、フィルタドライバは、装置の互換性情報を照会する要求を物理装置オブジェクトに送信することによって、装置の互換性情報を取得することができる。
【００３２】
ステップ206:形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信し、そうすることによって、プラグアンドプレイマネージャが、形成された装置ドライバマッチングストリングに従って、物理装置にマッチするドライバプログラムを見つける。
【００３３】
本発明のこの実施形態において、フィルタドライバは、列挙ドライバに追加される。追加されたフィルタドライバは、列挙ドライバによって列挙された各装置用の、対応するフィルタ装置オブジェクトを作成し、フィルタドライバと装置オブジェクトとの間の関係を確立するように、作成した装置オブジェクトを、対応する子装置スタックに追加し、プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、追加されたフィルタドライバは、装置情報を照会する要求を捕捉する。さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返した後、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成され、形成された装置ドライバマッチングストリングが、プラグアンドプレイマネージャに送信される。このようにして、オペレーティングシステムが、装置ドライバマッチングストリング中のベンダ識別子、装置サブクラス、および装置プロトコルタイプについての情報に従って、装置ドライバプログラムのマッチングを実行することができる。従来技術と比較して、本発明のこの実施形態では、装置ベンダにとっては、同じ種類の装置用のドライバプログラムのマッチングを実行するために、装置ドライバプログラムの装置ドライバマッチングストリングのみが、装置サブクラスおよび装置プロトコルタイプに従って編集される必要がある。続いて、同じ種類の装置の製品識別子または製品ポート番号がどのように変更されたとしても、同じ種類の装置の装置ドライバマッチングストリングは、編集し直される必要がない。このようにして、同じ種類の製品または同じ種類のポートの装置ドライバマッチングストリングは、一度だけ生成され、再利用されるので、大量生産におけるドライバの保守および認証のコストが大幅に節約され得る。
【００３４】
実施形態3
本発明のこの実施形態は、USB装置ドライバマッチングストリングを修正する機器を提供する。図3に示すように、この機器は、情報要求捕捉モジュール31、情報要求送信モジュール32、情報受信モジュール33、形成モジュール34、およびストリング送信モジュール35を含む。
【００３５】
情報要求捕捉モジュール31は、装置情報を照会する要求をプラグアンドプレイマネージャが物理装置オブジェクトに送信すると、装置情報を照会する要求を捕捉するように構成される。
【００３６】
装置情報を照会する要求が捕捉された後で、情報要求送信モジュール32は、情報要求捕捉モジュール31によって捕捉された、装置情報を照会する要求を列挙ドライバに送信するように構成され、そうすることによって列挙ドライバは、照会要求に従って装置情報を返す。列挙ドライバによって返された装置情報はストリングの形であり、装置情報は、装置ベンダ識別子、製品識別子、および製品ポート番号を含み、装置情報は、vid_xxxx&pid_yyyy&mi_zzの形で表すことができる。
【００３７】
列挙ドライバが、装置情報を照会する要求を受信した後で装置情報を返すと、情報受信モジュール33は、列挙ドライバによって返された装置情報を受信するように構成される。
【００３８】
形成モジュール34は、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するように構成され、ここで装置ドライバマッチングストリングは、vid_xxxx&subclass_yy&prot_zzの形で表すことができる。
【００３９】
ストリング送信モジュール35は、形成モジュール34によって形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信するように構成され、そうすることによってプラグアンドプレイマネージャが、形成された装置ドライバマッチングストリングに従って、物理装置にマッチするドライバプログラムを見つける。
【００４０】
装置の互換性情報はストリングの形であり、互換性情報は、装置クラス、装置サブクラス、および装置プロトコルタイプを含んでよく、互換性情報は、class_xx&subclass_yy&prot_zzの形で表すことができる。装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成される前に、装置の互換性情報を照会する要求が物理装置オブジェクトに送信されて、装置の互換性情報が取得される。
【００４１】
本発明のこの実施形態において、プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、装置情報を照会する要求が捕捉される。さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返した後、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成され、形成された装置ドライバマッチングストリングが、プラグアンドプレイマネージャに送信され、このようにして、オペレーティングシステムが、装置ドライバマッチングストリング中のベンダ識別子、装置サブクラス、および装置プロトコルタイプについての情報に従って、装置ドライバプログラムのマッチングを実行することができる。従来技術と比較して、本発明のこの実施形態では、装置ベンダにとっては、同じ種類の装置用のドライバプログラムのマッチングを実行するために、装置ドライバプログラムの装置ドライバマッチングストリングのみが、装置サブクラスおよび装置プロトコルタイプに従って編集される必要がある。続いて、同じ種類の装置の製品識別子または製品ポート番号がどのように変更されたとしても、同じ種類の装置の装置ドライバマッチングストリングは、編集し直される必要がない。このようにして、同じ種類の製品または同じ種類のポートの装置ドライバマッチングストリングは、一度だけ生成され、再利用されるので、大量生産におけるドライバの保守および認証のコストが大幅に節約され得る。
【００４２】
実施形態4
本発明のこの実施形態は、USB装置ドライバマッチングストリングを修正する機器を提供する。図4に示すように、この機器は、リスト要求捕捉モジュール41、リスト要求送信モジュール42、リスト受信モジュール43、作成モジュール44、追加モジュール45、情報要求捕捉モジュール46、情報要求送信モジュール47、情報受信モジュール48、形成モジュール49、およびストリング送信モジュール410を含む。
【００４３】
リスト要求捕捉モジュール41は、装置リストを照会する要求をプラグアンドプレイマネージャが送信すると、装置リストを照会する要求を捕捉するように構成される。
【００４４】
リスト要求送信モジュール42は、リスト要求捕捉モジュール41によって捕捉された装置リストを照会する要求を列挙ドライバに送信するように構成され、そうすることによって列挙ドライバは、装置リストを照会する要求に従って、すべての装置を列挙し、列挙した装置すべてのリストをプラグアンドプレイマネージャに返す。装置リストを照会する要求に従って、列挙ドライバが装置すべてを列挙する操作が終了したことがフィルタドライバに分かるようにするために、装置リストを照会する要求が捕捉された後で、一般に完了コールバック関数が、装置リストを照会する要求に関して登録される。
【００４５】
列挙ドライバが、装置リストを照会する要求に従って装置リストを返すと、リスト受信モジュール43は、装置リストを照会する要求に従って列挙ドライバによって返された装置リストを受信するように構成される。
【００４６】
作成モジュール44は、リスト受信モジュール43によって受信された装置リストに従って、装置リスト中の各装置用のフィルタ装置オブジェクトを作成するように構成される。
【００４７】
追加モジュール45は、作成モジュール44によって作成されたフィルタ装置オブジェクトを、対応する子装置スタックに追加し、フィルタ装置オブジェクトを、対応する子装置スタックに追加した後で、列挙ドライバによって返された装置リストをプラグアンドプレイマネージャに送信するように構成され、そうすることによってプラグアンドプレイマネージャが、装置リストに従って、装置情報を照会する要求をリスト中の物理装置オブジェクトに送信する。列挙ドライバが、装置リストを照会する要求に従って装置リストを返すと、システムは、装置リストを照会する要求に関して登録された完了コールバック関数を自動的に呼び出して、返された装置リストに従って、装置リスト中の各装置用のフィルタ装置オブジェクトを作成し、作成したフィルタ装置オブジェクトを、対応する子装置スタックに追加することができる。このようにして、プラグアンドプレイマネージャによって送信された、装置情報を照会する要求を、子装置スタック中のフィルタ装置オブジェクトに従って捕捉することができ、列挙ドライバによって返された装置情報を修正することができるように保証され得る。
【００４８】
情報要求捕捉モジュール46は、装置情報を照会する要求をプラグアンドプレイマネージャが物理装置オブジェクトに送信すると、装置情報を照会する要求を捕捉するように構成される。
【００４９】
情報要求が捕捉された後、情報要求送信モジュール47は、情報要求捕捉モジュール46によって捕捉された、装置情報を照会する要求を列挙ドライバに送信するように構成され、そうすることによって列挙ドライバは、照会要求に従って装置情報を返し、ここで列挙ドライバによって返された装置情報はストリングの形であり、装置情報は、装置ベンダ識別子、製品識別子、および製品ポート番号を含み、装置情報は、vid_xxxx&pid_yyyy&mi_zzの形で表すことができる。
【００５０】
列挙ドライバが、装置情報を照会する要求に従って返すと、情報受信モジュール48は、列挙ドライバによって返された装置情報を受信するように構成される。
【００５１】
装置情報が受信された後、形成モジュール49は、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するように構成され、ここで装置ドライバマッチングストリングは、vid_xxxx&subclass_yy&prot_zzの形で表すことができる。
【００５２】
ストリング送信モジュール410は、形成モジュール49によって形成された装置ドライバマッチングストリングをプラグアンドプレイマネージャに送信するように構成され、そうすることによってプラグアンドプレイマネージャが、形成された装置ドライバマッチングストリングに従って、物理装置にマッチするドライバプログラムを見つける。装置の互換性情報はストリングの形であり、互換性情報は、装置クラス、装置サブクラス、および装置プロトコルタイプを含み、互換性情報は、class_xx&subclass_yy&prot_zzの形で表すことができる。
【００５３】
新たな装置ドライバマッチングストリングが、列挙ドライバによって返された装置情報および装置の互換性情報によって形成される前に、USB装置ドライバマッチングストリングを修正する機器は、互換性情報取得モジュール411をさらに含み得る。互換性情報取得モジュール411は、装置の互換性情報を照会する要求を物理装置オブジェクトに送信して、装置の互換性情報を取得するように構成される。
【００５４】
さらに、装置情報を照会する要求に従って、列挙ドライバが装置情報を列挙する操作が終了したことがフィルタドライバに分かるようにするために、USB装置ドライバマッチングストリングを修正する機器は、登録モジュール412をさらに含み得る。登録モジュール412は、情報要求捕捉モジュール46が、装置情報を照会する捕捉要求を列挙ドライバに送信する前に、装置情報を照会する要求に関する完了コールバック関数を登録するように構成され、そうすることによって列挙ドライバが、装置情報を照会する要求に従って装置情報を返すと、システムは、返された装置情報および装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するために、登録された完了コールバック関数を自動的に呼び出す。
【００５５】
本発明のこの実施形態において、フィルタドライバは、列挙ドライバによって列挙された各装置用に、対応するフィルタ装置オブジェクトを作成し、フィルタドライバと装置オブジェクトとの間の関係を確立するように、作成した装置オブジェクトを、対応する子装置スタックに追加する。装置情報を照会する要求をプラグアンドプレイマネージャが物理装置オブジェクトに送信すると、フィルタドライバは、装置情報を照会する要求を捕捉する。さらに、列挙ドライバが、装置情報を照会する要求に従って装置情報を返した後、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングが、返された装置情報および装置の互換性情報に従って形成され、形成された装置ドライバマッチングストリングが、プラグアンドプレイマネージャに送信される。このようにして、オペレーティングシステムが、装置ドライバマッチングストリング中のベンダ識別子、装置サブクラス、および装置プロトコルタイプについての情報に従って、装置ドライバプログラムのマッチングを実行することができる。従来技術と比較して、本発明のこの実施形態では、装置ベンダにとっては、同じ種類の装置用のドライバプログラムのマッチングを実行するために、装置ドライバプログラムの装置ドライバマッチングストリングのみが、サブクラスおよびプロトコルに従って編集される必要がある。続いて、同じ種類の装置の製品識別子または製品ポート番号がどのように変更されたとしても、同じ種類の装置の装置ドライバマッチングストリングは、編集し直される必要がない。このようにして、同じ種類の製品または同じ種類のポートの装置ドライバマッチングストリングは、一度だけ生成され、再利用されるので、大量生産におけるドライバの保守および認証のコストが大幅に節約され得る。
【００５６】
本発明の実施形態は、装置ドライバマッチングストリングを修正するのにフィルタドライバが使われる特殊なケースのみを記載している。ただし、この技術ソリューションにより、列挙ドライバがプラグアンドプレイマネージャに返すあらゆる情報を修正することができ、このことも、本発明の保護範囲内である。
【００５７】
実装法についての前述の説明に基づいて、本発明は、必要な汎用ハードウェアプラットフォームに加え、ソフトウェアによっても、ハードウェアのみによっても実装され得ることが当業者には理解可能であろう。ほとんどの状況では、前者の方が優れた実装法である。このような理解に基づいて、本発明の技術ソリューションまたは従来技術に寄与する部分は、ソフトウェア製品によって実施され得る。ソフトウェア製品は、可読記憶媒体、たとえば、コンピュータのフロッピー(登録商標)ディスク、ハードディスク、またはコンパクトディスク読出し専用メモリ(CD-ROM)に格納され、本発明の実施形態それぞれにおける方法を実行するよう、コンピュータ装置(たとえば、パーソナルコンピュータ、サーバ、またはネットワーク装置)に命令するためのいくつかの命令を組み込む。
【００５８】
前述の説明は、本発明の例示的な実施形態に過ぎず、本発明の保護範囲を限定することは意図していない。本明細書で開示した技術の範囲内において当業者によって容易に考えられるいかなる修正または置換えも、本発明の保護範囲内である。したがって、本発明の範囲は、添付の請求項に依存する。
【符号の説明】
【００５９】
31  情報要求捕捉モジュール
32  情報要求送信モジュール
33  情報受信モジュール
34  形成モジュール
35  ストリング送信モジュール
41  リスト要求捕捉モジュール
42  リスト要求送信モジュール
43  リスト受信モジュール
44  作成モジュール
45  追加モジュール
46  情報要求捕捉モジュール
47  情報要求送信モジュール
48  情報受信モジュール
49  形成モジュール
410  ストリング送信モジュール
411  互換性情報取得モジュール
412  登録モジュール
【図１】
2013512516.tif 000003
【図２】
2013512516.tif 000004
【図３】
2013512516.tif 000005
【図４】
2013512516.tif 000006
【手続補正書】
【提出日】平成25年1月28日(2013.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
USB装置ドライバマッチングストリングを修正する方法であって、
プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、フィルタドライバによって、装置情報を照会する前記要求を捕捉し、装置情報を照会する前記捕捉要求を列挙ドライバに送信するステップと、
装置情報を照会する前記要求に従って、前記列挙ドライバによって返された装置情報を前記フィルタドライバによって受信し、前記返された装置情報および前記装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するステップと、
前記形成された装置ドライバマッチングストリングを前記プラグアンドプレイマネージャに送信するステップとを含み、
前記フィルタドライバが、前記返された装置情報および前記装置の互換性情報に従って、前記装置ベンダ識別子、前記装置サブクラス、および前記装置プロトコルタイプを含む前記装置ドライバマッチングストリングを形成する前に、前記方法が、
前記装置の前記互換性情報を取得するために、前記フィルタドライバによって、前記装置の互換性情報を照会する要求を前記物理装置オブジェクトに送信するステップであって、前記装置の前記互換性情報が、装置クラス、装置サブクラス、および装置プロトコルタイプを含むステップをさらに含む方法。
【請求項２】
装置情報を照会する前記捕捉要求を前記列挙ドライバに送信する前に、前記方法が、
装置情報を照会する前記捕捉要求に関して完了コールバック関数を登録し、そうすることによって前記列挙ドライバが、装置情報を照会する前記要求に従って、前記装置情報を返すと、前記装置情報および前記互換性情報に従って前記装置ドライバマッチングストリングを形成する操作を実施するために前記登録された完了コールバック関数が呼び出されるステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記フィルタドライバが、装置情報を照会する前記要求を捕捉する前に、前記方法が、
前記プラグアンドプレイマネージャが、装置リストを照会する要求を送信すると、前記フィルタドライバによって、装置リストを照会する前記要求を捕捉し、装置リストを照会する前記捕捉要求を前記列挙ドライバに送信するステップと、
前記列挙ドライバによって、装置リストを照会する前記要求に従って返される装置リストを前記フィルタドライバによって受信し、前記装置リスト中の各装置用のフィルタ装置オブジェクトを前記装置リストに従って作成し、前記作成したフィルタ装置オブジェクトを、対応する子装置スタックに追加し、そうすることによって前記フィルタドライバが、前記子装置スタック中の前記フィルタ装置オブジェクトに従って、装置情報を照会する前記要求を捕捉するステップとをさらに含む、請求項1に記載の方法。
【請求項４】
前記装置情報がストリングの形であり、前記装置情報が、装置ベンダ識別子、製品識別子、および製品ポート番号を含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
USB装置ドライバマッチングストリングを修正する機器であって、
プラグアンドプレイマネージャが、装置情報を照会する要求を物理装置オブジェクトに送信すると、装置情報を照会する要求を捕捉するように構成された情報要求捕捉モジュールと、
前記情報要求捕捉モジュールによって捕捉された、装置情報を照会する前記要求を列挙ドライバに送信するように構成された情報要求送信モジュールと、
前記列挙ドライバによって、装置情報を照会する前記要求に従って返される装置情報を受信するように構成された情報受信モジュールと、
前記返された装置情報および前記装置の互換性情報に従って、装置ベンダ識別子、装置サブクラス、および装置プロトコルタイプを含む装置ドライバマッチングストリングを形成するように構成された形成モジュールと、
前記形成モジュールによって形成された前記装置ドライバマッチングストリングを前記プラグアンドプレイマネージャに送信するように構成されたストリング送信モジュールとを備え、
前記機器が、前記装置ベンダ識別子、前記装置サブクラス、および前記装置プロトコルタイプを含む前記装置ドライバマッチングストリングが、前記返された装置情報および前記装置の前記互換性情報に従って形成される前に、前記装置の前記互換性情報を取得するために、前記装置の前記互換性情報を照会する要求を前記物理装置オブジェクトに送信するように構成された互換性情報取得モジュールであって、前記互換性情報が、装置クラス、装置サブクラス、および装置プロトコルタイプを含む互換性情報取得モジュールをさらに備える機器。
【請求項６】
前記情報要求送信モジュールが、装置情報を照会する前記捕捉要求を前記列挙ドライバに送信する前に、装置情報を照会する前記要求に対する完了コールバック関数を登録するように構成された登録モジュールであって、そうすることによって、前記列挙ドライバが、装置情報を照会する前記要求に従って、前記装置情報を返すと、前記装置情報および前記互換性情報に従って前記装置ドライバマッチングストリングを形成する操作を実施するために、前記登録された完了コールバック関数が呼び出される、登録モジュールをさらに備える、請求項5に記載の機器。
【請求項７】
装置情報を照会する前記要求が捕捉される前に、前記プラグアンドプレイマネージャが、装置リストを照会する要求を送信すると、前記装置リストを照会する要求を捕捉するように構成されたリスト要求捕捉モジュールと、
前記リスト要求捕捉モジュールによって捕捉された、装置リストを照会する前記要求を前記列挙ドライバに送信するように構成されたリスト要求送信モジュールと、
前記列挙ドライバによって、装置リストを照会する前記要求に従って返される装置リストを受信するように構成されたリスト受信モジュールと、
前記リスト受信モジュールによって受信された前記装置リストに従って、前記装置リスト中の各装置用のフィルタ装置オブジェクトを作成するように構成された作成モジュールと、
子装置スタック中の前記フィルタ装置オブジェクトに従って、装置情報を照会する前記要求を捕捉するように、前記作成モジュールによって作成された前記フィルタ装置オブジェクトを、対応する子装置スタックに追加するように構成された追加モジュールとをさらに備える、請求項5に記載の機器。
【請求項８】
前記装置情報がストリングの形であり、前記装置情報が、装置ベンダ識別子、製品識別子、および製品ポート番号を含む、請求項5から7のいずれか一項に記載の機器。
【国際調査報告】
2013512516.tif 000007
2013512516.tif 000008
2013512516.tif 000009
2013512516.tif 000010