(57)【特許請求の範囲】
【請求項１】
複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスであって、
アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスに関連付けられるオペレーティングシステム（ＯＳ）固有の機能仕様を有し、前記ＯＳ固有の機能仕様は、複数のＯＳ固有の機能を含む前記ＡＣＰＩサブシステムと、
前記コンピューティングデバイスのＯＳにより初期化され、（ｉ）前記ＡＣＰＩサブシステムの前記仮想デバイスとインターフェース接続し、（ｉｉ）前記ＡＣＰＩサブシステムにおいて前記ＯＳ固有の機能仕様に、前記ＯＳを他の複数のオペレーティングシステムからユニークに識別する前記ＯＳの識別子を含む呼び出しを送信する仮想デバイスドライバロジックとを備え、
前記ＡＣＰＩサブシステムは、（ｉ）前記ＯＳ固有の機能仕様を分析して、前記ＯＳをユニークに識別する前記呼び出しからの前記識別子に基づいて、前記ＯＳのための前記複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定し、（ｉｉ）前記識別子に基づいて前記ＯＳに対して決定された前記１または複数のＯＳ固有の機能を実行する、コンピューティングデバイス。
【請求項２】
前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様は、前記仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または前記仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む、請求項１に記載のコンピューティングデバイス。
【請求項３】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）前記ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）前記ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項１に記載のコンピューティングデバイス。
【請求項４】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能を前記ＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトを前記ＯＳに対して非表示にすることのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項１に記載のコンピューティングデバイス。
【請求項５】
前記ＡＣＰＩサブシステムにおいて前記ＯＳ固有の機能仕様に前記呼び出しを送信することは、前記ＡＣＰＩサブシステムにおいて前記ＯＳ固有の機能仕様に前記呼び出しを送信して、前記ＯＳの前記識別子を引数として渡すことを含む、請求項１に記載のコンピューティングデバイス。
【請求項６】
前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様は、異なる複数のオペレーティングシステムの各々に関連付けられる少なくとも１つのＯＳ固有の機能を含み、
前記複数のオペレーティングシステムの各ＯＳは、前記ＯＳを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する、請求項１〜５のいずれか１項に記載のコンピューティングデバイス。
【請求項７】
前記ＯＳは、第１のＯＳを含み、
前記識別子は、前記第１のＯＳを他の複数のオペレーティングシステムからユニークに識別する第１の識別子を含み、
前記ＯＳ固有の機能仕様の前記複数のＯＳ固有の機能は、前記第１のＯＳに対する複数のＯＳ固有の機能の第１のグループと、前記第１のＯＳとは異なる前記コンピューティングデバイスの第２のＯＳに対する複数のＯＳ固有の機能の第２のグループとを含み、
複数のＯＳ固有の機能の前記第１のグループは、前記ＯＳ固有の機能仕様において前記第１の識別子により識別され、
複数のＯＳ固有の機能の前記第２のグループは、前記ＯＳ固有の機能仕様において前記第１の識別子とは異なる第２の識別子により識別される、請求項１〜５のいずれか１項に記載のコンピューティングデバイス。
【請求項８】
前記コンピューティングデバイスの前記ＯＳにより初期化され、前記仮想デバイスドライバロジックを初期化する前に前記ＡＣＰＩサブシステムとインターフェース接続し、前記仮想デバイスドライバロジックとは異なるＡＣＰＩドライバロジックを更に備え、
前記ＡＣＰＩサブシステムは、更に、（ｉ）デバイスデータを前記ＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードし、（ｉｉ）前記デバイスデータを前記ＡＣＰＩテーブルから前記ＡＣＰＩドライバロジックへと送信し、
前記デバイスデータは、前記ＡＣＰＩサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様を示し、
前記ＡＣＰＩドライバロジックにより前記ＡＣＰＩテーブルから前記デバイスデータを受信したことに応答して、前記ＯＳは、前記仮想デバイスをエニュメレートする、請求項１〜５のいずれか１項に記載のコンピューティングデバイス。
【請求項９】
前記デバイスデータを前記ＡＣＰＩテーブルにロードすることは、前記コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアから前記ＡＣＰＩテーブルへとデバイスデータをロードすることを含む、請求項８に記載のコンピューティングデバイス。
【請求項１０】
コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法であって、
前記コンピューティングデバイスのオペレーティングシステム（ＯＳ）により仮想デバイスドライバを初期化して前記コンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスとインターフェース接続する段階と、
前記仮想デバイスドライバにより、前記ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に、前記ＯＳを他の複数のオペレーティングシステムからユニークに識別する前記ＯＳの識別子を含む呼び出しを送信する段階と、
前記ＡＣＰＩサブシステムにより前記ＯＳ固有の機能仕様を分析して、前記ＯＳをユニークに識別する前記呼び出しからの前記識別子に基づいて、前記ＯＳに対する複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定する段階と、
前記ＡＣＰＩサブシステムにより、前記識別子に基づいて前記ＯＳに対して決定された前記１または複数のＯＳ固有の機能を実行する段階とを備え、
前記ＡＣＰＩサブシステムは、前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様を含み、
前記ＯＳ固有の機能仕様は、前記複数のＯＳ固有の機能を含む、方法。
【請求項１１】
前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様は、前記仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または前記仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む、請求項１０に記載の方法。
【請求項１２】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）前記ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）前記ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項１０に記載の方法。
【請求項１３】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能を前記ＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトを前記ＯＳに対して非表示にすることのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項１０に記載の方法。
【請求項１４】
前記ＡＣＰＩサブシステムにおいて前記ＯＳ固有の機能仕様に前記呼び出しを送信する段階は、前記ＡＣＰＩサブシステムにおいて前記ＯＳ固有の機能仕様に前記呼び出しを送信する段階と、前記ＯＳの前記識別子を引数として渡す段階とを有する、請求項１０に記載の方法。
【請求項１５】
前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様は、異なる複数のオペレーティングシステムの各々に関連付けられる少なくとも１つのＯＳ固有の機能を含み、
前記複数のオペレーティングシステムの各ＯＳは、前記ＯＳを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する、請求項１０に記載の方法。
【請求項１６】
前記ＯＳは、第１のＯＳを含み、
前記識別子は、前記第１のＯＳを他の複数のオペレーティングシステムからユニークに識別する第１の識別子を含み、
前記ＯＳ固有の機能仕様の前記複数のＯＳ固有の機能は、前記第１のＯＳに対する複数のＯＳ固有の機能の第１のグループと、前記第１のＯＳとは異なる前記コンピューティングデバイスの第２のＯＳに対する複数のＯＳ固有の機能の第２のグループとを含み、
複数のＯＳ固有の機能の前記第１のグループは、前記ＯＳ固有の機能仕様において前記第１の識別子により識別され、
複数のＯＳ固有の機能の前記第２のグループは、前記ＯＳ固有の機能仕様において前記第１の識別子とは異なる第２の識別子により識別される、請求項１０に記載の方法。
【請求項１７】
前記コンピューティングデバイスの前記ＡＣＰＩサブシステムによりデバイスデータを前記ＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードする段階と、
前記コンピューティングデバイスの前記ＯＳによりＡＣＰＩドライバを初期化して、前記仮想デバイスドライバを初期化する前に前記ＡＣＰＩサブシステムとインターフェース接続する段階と、
前記ＡＣＰＩサブシステムにより前記ＡＣＰＩテーブルから前記ＡＣＰＩドライバへと前記デバイスデータを送信する段階と、
前記ＡＣＰＩドライバが前記デバイスデータを前記ＡＣＰＩテーブルから受信したことに応答して、前記コンピューティングデバイスの前記ＯＳにより前記仮想デバイスをエニュメレートする段階とを更に備え、
前記デバイスデータは、前記ＡＣＰＩサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記ＯＳ固有の機能仕様を示し、
前記ＡＣＰＩドライバは、前記仮想デバイスドライバとは異なる、請求項１０に記載の方法。
【請求項１８】
前記デバイスデータを前記ＡＣＰＩテーブルにロードする段階は、前記コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアから前記ＡＣＰＩテーブルへとデバイスデータをロードする段階を有する、請求項１７に記載の方法。
【請求項１９】
実行されると、コンピュータに請求項１０〜１８のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【請求項２０】
複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスであって、
仮想デバイスおよび前記仮想デバイスに関連付けられる機能仕様を有するアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムであって、前記機能仕様は、前記ＡＣＰＩサブシステムにより実行される複数のオペレーティングシステム（ＯＳ）固有の機能を含み、前記複数のＯＳ固有の機能の各々のＯＳ固有の機能は、前記ＯＳ固有の機能をユニークに複数の他のＯＳ固有の機能から識別する機能識別子に関連付けられるＡＣＰＩサブシステムと、
前記コンピューティングデバイスのＯＳにより初期化され、前記ＯＳに固有であり、（ｉ）前記ＡＣＰＩサブシステムの前記仮想デバイスとインターフェース接続し、（ｉｉ）前記ＡＣＰＩサブシステムにおいて前記機能仕様に対する呼び出しを送信する仮想デバイスドライバロジックであって、前記呼び出しは、前記ＯＳに対応する前記機能仕様のＯＳ固有の機能の複数の前記機能識別子のうちの１または複数を含む仮想デバイスドライバロジックとを備え、
前記ＡＣＰＩサブシステムは、（ｉ）１または複数の前記機能識別子に基づいて前記機能仕様を分析して、前記複数のＯＳ固有の機能のうちの前記１または複数のＯＳ固有の機能を決定し、（ｉｉ）１または複数の前記機能識別子に基づいて決定された前記１または複数のＯＳ固有の機能を実行する、コンピューティングデバイス。
【請求項２１】
前記仮想デバイスに関連付けられる前記機能仕様は、前記仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）を含む、請求項２０に記載のコンピューティングデバイス。
【請求項２２】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）前記ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）前記ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項２０に記載のコンピューティングデバイス。
【請求項２３】
前記複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能を前記ＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトを前記ＯＳに対して非表示にすることのうちの少なくとも１つを行うＯＳ固有の機能を含む、請求項２０に記載のコンピューティングデバイス。
【請求項２４】
前記コンピューティングデバイスの前記ＯＳにより初期化され、前記仮想デバイスドライバロジックを初期化する前に前記ＡＣＰＩサブシステムとインターフェース接続し、前記仮想デバイスドライバロジックとは異なるＡＣＰＩドライバロジックを更に備え、
前記ＡＣＰＩサブシステムは、更に、（ｉ）デバイスデータを前記ＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードし、（ｉｉ）前記デバイスデータを前記ＡＣＰＩテーブルから前記ＡＣＰＩドライバロジックへと送信し、
前記デバイスデータは、前記ＡＣＰＩサブシステムの前記仮想デバイスおよび前記仮想デバイスに関連付けられる前記機能仕様を示し、
前記ＡＣＰＩドライバロジックにより前記ＡＣＰＩテーブルから前記デバイスデータを受信したことに応答して、前記ＯＳは、前記仮想デバイスをエニュメレートする、請求項２０〜２３のいずれか１項に記載のコンピューティングデバイス。
【請求項２５】
前記デバイスデータを前記ＡＣＰＩテーブルにロードすることは、前記コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアから前記ＡＣＰＩテーブルへとデバイスデータをロードすることを含む、請求項２４に記載のコンピューティングデバイス。
【請求項２６】
請求項１９に記載のコンピュータプログラムを格納する、コンピュータ可読記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
［関連する米国特許出願の相互参照］
本願は、２０１４年３月２１日に出願された「ＳＥＬＥＣＴＩＶＥＬＹ  ＥＮＡＢＬＩＮＧ  ＰＬＡＴＦＯＲＭ−ＳＰＥＣＩＦＩＣ  ＦＥＡＴＵＲＥＳ」という名称の米国特許出願第１４／２２１，９８３号に対する優先権を主張する。
【０００２】
一般にコンピューティングデバイスは、コンピューティングデバイスの様々なハードウェアおよびソフトウェアリソースを管理するオペレーティングシステムを含む。多くの場合、最新のオペレーティングシステムはブート処理中、ハードウェアデバイスおよび／またはオペレーティングシステムに利用可能なコンピューティングデバイスの機能を公開するハードウェア供給元により提供されたファームウェアに依存する。多くの場合、特定のハードウェアデバイスおよび／または機能は、オペレーティングシステム固有であり得る。すなわち、特定のハードウェアデバイスおよび／または機能は、あるオペレーティングシステムとの使用には互換性があるが、別のオペレーティングシステムには互換性がないことがある。従って配布およびメンテナンスコストを減少させる取り組みにおいて、ハードウェア供給元は通常、製品ライン全体で単一のファームウェアをリリースし、これにより複数のオペレーティングシステムをサポートする。従って、互換性があるハードウェアデバイスおよび／または機能のみがオペレーティングシステムに公開されることを保証するべく、どのオペレーティングシステムがブートされているかを、ファームウェアが認識することが重要である。
【０００３】
ポータブルコンピューティングデバイス市場が過熱するにつれて、複数のオペレーティングシステム供給元間の競争が増大している。この競争は、以前よりも迅速に新しい機能を開発して市場にリリースするようにオペレーティングシステム供給元を駆り立てている。これらの新しい機能の多くは業界標準に従っておらず、プラットフォームおよび／もしくはオペレーティング固有のハードウェアデバイス、ならびに／またはファームウェアにより提供される機能にやはり依存する。そのような慣行により、ブート中にオペレーティングシステムに公開される互換性のないハードウェアデバイスおよび／または機能のリスクを増大させる。また、そのような慣行は、ハードウェア供給元が製品ライン全体で１個のファームウェアをリリースできることをも脅かす。
【図面の簡単な説明】
【０００４】
本明細書において説明される複数の概念は、添付の複数の図において限定としてではなく例として図示されている。図示を簡略化して見やすくするべく、図に例示される複数の要素は、必ずしも縮尺通りに描かれない。適切と考えられる場合には、対応するか、または類似する複数の要素を示すべく、複数の図面において符号が反復されている。
【０００５】
【図１】複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを用いるシステムの少なくとも一実施形態による簡易ブロックダイアグラムである。
【０００６】
【図２】図１におけるシステムのコンピューティングデバイス環境の少なくとも一実施形態による簡易ブロックダイアグラムである。
【０００７】
【図３】図１および２におけるコンピューティングデバイスにより実行され得る複数のプラットフォーム固有の機能を選択的に有効にするための方法の少なくとも一実施形態の簡略フロー図である。
【０００８】
【図４】複数のプラットフォーム固有の機能を選択的に有効にするための、図３における方法の少なくとも一実施形態による簡略動作フロー図である。
【０００９】
【図５】複数のプラットフォーム固有の機能を選択的に有効にするための、図１および２におけるコンピューティングデバイスにより用いられ得るオペレーティングシステム（ＯＳ）固有の機能仕様の例示的な実施形態である。
【００１０】
【図６】複数のプラットフォーム固有の機能を選択的に有効にするための、図１および２におけるコンピューティングデバイスにより用いられ得る機能仕様の例示的な実施形態である。
【００１１】
【図７】図３および９の方法の実行に応答する、図１および２のコンピューティングデバイスの最終的構成の例示的な図である。
【００１２】
【図８】図３および９の方法の実行に応答する、図１および２のコンピューティングデバイスの最終的構成の別の例示的な図である。
【００１３】
【図９】図１および２におけるコンピューティングデバイスにより実行され得る複数のプラットフォーム固有の機能を選択的に有効にするための方法の少なくとも１つの他の実施形態の簡略フロー図である。
【００１４】
【図１０】複数のプラットフォーム固有の機能を選択的に有効にするための図９における方法の少なくとも一実施形態による簡略動作フロー図である。
【発明を実施するための形態】
【００１５】
本開示の概念では、様々な変更形態および代替形態が可能であるが、それらの具体的な実施形態は、図面において例として示されており、本明細書において詳細に説明されない。しかし、本開示の複数の概念を開示される特定の形態に限定する意図は存在せず、反対に本開示および添付の特許請求の範囲に即した全ての変更形態、均等物、および代替形態を包含する意図であることを理解されたい。
【００１６】
本明細書において「一実施形態」、「実施形態」、「例示的な実施形態」等を参照する場合、説明される実施形態が特定の機能、構造、または特性を含み得ることを示すが、あらゆる実施形態は、当該特定の機能、構造、または特性を含み得、または必ずしも含むわけではない場合がある。更に、そのような文言は同一の実施形態を必ずしも参照するわけではない。更に、特定の機能、構造、または特性が一実施形態に関連して説明される場合、明示的に説明されているか否かにかかわらず、複数の他の実施形態に関連してそのような機能、構造、または特性をもたらすことは当業者の知識の範囲内であると考えられる。更に、「Ａ、Ｂ、およびＣのうちの少なくとも１つ」の形での一覧に含まれる項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）を意味し得ることを理解されたい。同様に、「Ａ、Ｂ、またはＣのうちの少なくとも１つ」の形で列挙された複数の項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡおよびＢ）、（ＡおよびＣ）、（ＢおよびＣ）、または（Ａ、Ｂ、およびＣ）を意味し得る。
【００１７】
複数の開示された実施形態はいくつかの場合に、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装され得る。複数の開示された実施形態は、１または複数の一時的または非一時的機械可読（例えばコンピュータ可読）ストレージ媒体により保持され、またはこれらに記憶される命令としても実装され得る。命令は、１または複数のプロセッサにより読み取られて実行され得る。機械可読ストレージ媒体は、機械（例えば、揮発性もしくは不揮発性メモリ、メディアディスク、または他の媒体のデバイス）により読み取り可能な形態の情報を格納または送信する任意のストレージデバイス、メカニズム、または他の物理構造体として実施され得る。
【００１８】
複数の図面において、いくつかの構造的または方法の機能は、特定の配置および／または順序で示され得る。しかし、複数のそのような特定の配置および／または順序は必要とされない場合があることを理解されたい。むしろいくつかの実施形態において、複数のそのような機能は異なる態様で、および／または例示的な図に示されるものとは異なる順序で配置され得る。更に、特定の図面に構造的または方法の機能を含んでいても、そのような機能が全ての実施形態において必要とされることを示唆するとは予定されておらず、いくつかの実施形態において含まれていない場合があり、または他の複数の機能と組み合わされる場合がある。
【００１９】
ここで図１を参照すると、例示的な実施形態において、複数のプラットフォーム固有の機能を選択的に有効にするためのシステム１００はコンピューティングデバイス１１０を含む。使用時に、コンピューティングデバイス１１０は、ＯＳ１２６を初期化する間に１または複数のオペレーティングシステム（ＯＳ）固有の機能を実行する。それを行うべく、コンピューティングデバイス１１０の基本入出力システム（ＢＩＯＳ）インターフェース１１８は、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステム１２０を提供し、これを介してコンピューティングデバイス１１０は、初期化（例えば、ブート、ロード、実行等）されるＯＳと通信および／またはインタラクトし得る。ＯＳ１２６を初期化する間にＯＳ固有の機能を実行することを容易にすべく、ＡＣＰＩサブシステム１２０は、仮想ＡＣＰＩデバイス（例えば、仮想ＡＣＰＩオブジェクト）および仮想ＡＣＰＩデバイスに関連付けられるＯＳ固有の機能仕様（例えば、デバイス固有（ｄｅｖｉｃｅ  ｓｐｅｃｉｆｉｃ  ｍｅｔｈｏｄ）の方法または「＿ＤＳＭ」）を含む。いくつかの実施形態において、仮想ＡＣＰＩデバイスに関連付けられるＯＳ固有の機能仕様は、異なる様々なオペレーティングシステム（ＯＳ）に対する１または複数のＯＳ固有の機能を含む。複数のそのような実施形態において、仮想デバイスドライバは、ブート／初期化処理中にＯＳ１２６により初期化され、ＯＳ１２６が仮想ＡＣＰＩデバイスとインタラクトすることを可能にし得る。仮想デバイスドライバは、仮想デバイスドライバがどのＯＳ１２６とインタラクトするように構成されているかをユニークに識別するユニーク識別子（例えば、グローバルユニーク識別子または「ＧＵＩＤ」、汎用ユニーク識別子または「ＵＵＩＤ」等）を含み得る。いくつかの実施形態では、仮想デバイスドライバは、ＡＣＰＩサブシステム１２０において仮想ＡＣＰＩデバイスと関連付けられるＯＳ固有の機能仕様を呼び出し得る。呼び出しは、初期化されるＯＳ１２６のユニーク識別子を含み得る。呼び出しを受信すると、ＡＣＰＩサブシステム１２０はＯＳ固有の機能仕様を分析して、ユニーク識別子に基づいて初期化される特定のＯＳ１２６に対して実行されるべき１または複数のＯＳ固有の機能を決定する。次にＡＣＰＩサブシステム１２０は、決定されたＯＳ固有の機能を実行し、決定されたＯＳ固有の機能としては、例えば、１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトをＯＳ１２６に公開すること、ＯＳ１２６に対する１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを有効にすること（例えば、複数の機能および／またはオブジェクトをＡＣＰＩ名前空間に追加する、ロードする等）、１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトをＯＳ１２６に対して非表示にすること（例えば、公開を阻止する）、および／またはＯＳ１２６に対する１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを無効に��る（例えば、機能および／またはオブジェクトをＡＣＰＩ名前空間から削除する、アンロードする等）が挙げられ得る。そのようにして、コンピューティングデバイス１１０は、ＡＣＰＩサブシステム１２０、仮想ＡＣＰＩデバイス、および仮想デバイスドライバを介し、初期化される特定のＯＳ１２６に基づいて複数のプラットフォーム機能およびオブジェクトを選択的に有効および／または無効にするべく用いられ得る。
【００２０】
コンピューティングデバイス１１０は、デスクトップコンピュータ、ラップトップコンピューティングデバイス、サーバコンピュータ、消費者電子デバイス、モバイルコンピューティングデバイス、携帯電話、スマートフォーン、タブレットコンピューティングデバイス、携帯情報端末、ウェアラブルコンピューティングデバイス、スマートテレビ、スマート機器、および／または他のタイプのコンピューティングデバイスを含むがこれらに限定されない、本明細書において説明される複数の機能を実行することができる任意のタイプのコンピューティングデバイスとして実施され、またはそうでなければこれを含み得る。例示的なコンピューティングデバイス１１０は、プロセッサ１１２、メモリ１１４、入力／出力（Ｉ／Ｏ）サブシステム１１６、基本入出力システム（ＢＩＯＳ）インターフェース１１８、通信回路１２２、およびデータストレージ１２４を含む。勿論、コンピューティングデバイス１１０は、複数の他の実施形態において、コンピュータにおいて一般に見られるもの（例えば、様々な入力／出力デバイス）のような他のまたは追加の複数のコンポーネントを含み得る。更にいくつかの実施形態において、例示的なコンポーネントのうちの１または複数は、別のコンポーネントに組み込まれ、またはそうでなければこの一部を形成し得る。いくつかの実施形態において、例えばメモリ１１４またはその一部は、プロセッサ１１２に組み込まれ得る。
【００２１】
プロセッサ１１２は、本明細書において説明される複数の機能を実行することができる任意のタイプのプロセッサとして実施され得る。例えばプロセッサ１１２は、シングルまたはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラもしくは他のプロセッサ、または処理／制御回路として実施され得る。同様に、メモリ１１４は、本明細書において説明される複数の機能を実行することができる任意のタイプの揮発性もしくは不揮発性メモリ、またはデータストレージとして実施され得る。動作時にメモリ１１４は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、およびドライバ等のコンピューティングデバイス１１０の動作中に用いられる様々なデータおよびソフトウェアを格納し得る。メモリ１１４はＩ／Ｏサブシステム１１６を介してプロセッサ１１２に通信可能に結合され、Ｉ／Ｏサブシステム１１６は、コンピューティングデバイス１１０のプロセッサ１１２、メモリ１１４、および複数の他のコンポーネントとの入力／出力動作を容易にする回路および／またはコンポーネントとして実施され得る。例えばＩ／Ｏサブシステム１１６は、メモリコントローラハブ、入力／出力制御ハブ、ファームウェアデバイス、通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレース等）、および／または入力／出力動作を容易にする他のコンポーネント、ならびにサブシステムとして実施され、またはそうでなければこれらを含み得る。いくつかの実施形態において、Ｉ／Ｏサブシステム１１６は、１つの集積回路チップ上においてコンピューティングデバイス１１０のプロセッサ１１２、メモリ１１４、および複数の他のコンポーネントと共にシステムオンチップ（ＳｏＣ）の一部を形成して組み込まれ得る。
【００２２】
ＢＩＯＳ１１８は、コンピューティングデバイス１１０のプラットフォームおよび／またはオペレーティングシステム（ＯＳ）をブートし、またはそうでなければ初期化することを容易にするハードウェアコンポーネント、ソフトウェアコンポーネント、またはこれらの組み合わせ（例えば、システムファームウェア、システム初期化データ等）として実施され得る。例えばＢＩＯＳ１１８は、コンピューティングデバイス１１０の様々なコンポーネント（例えば入力／出力デバイス）を初期化および／またはテストし得る。いくつかの実施形態において、ＢＩＯＳ１１８はアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステム１２０および／またはフレームワークを介してロードされるＯＳ１２６と通信およびインタラクトし得、これはＢＩＯＳ１１８により提供され得る。更に以下に検討されるように、ＡＣＰＩサブシステム１２０は１または複数のＯＳ固有の機能をロードされるＯＳ１２６に提供するように構成され得る。
【００２３】
コンピューティングデバイス１１０の通信回路１２２は、コンピューティングデバイス１１０と１または複数の他のコンピューティングデバイスとの間の通信を可能にすることができる任意のタイプの通信回路、デバイス、またはこれらの集合として実施され得る。そのような通信をもたらすべく、通信回路１２２は、任意の１または複数の通信技術（例えば、無線もしくは有線通信）および関連付けられる複数のプロトコル（例えば、イーサネット（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ等）を用いるように構成され得る。
【００２４】
データストレージ１２４は、例えば、メモリデバイスおよび回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、または他のデータストレージデバイス等、データの短期的もしくは長期的な格納のために構成された任意のタイプのデバイスまたは複数のデバイスとして実施され得る。例えばデータストレージ１２４は、コンピューティングデバイス１１０により初期化および／または実行されるべき１または複数のオペレーティングシステム（例えば、図２に示されるオペレーティングシステム１２６）を格納するように構成され得る。いくつかの実施形態において、オペレーティングシステムの複数の部分は、より速く処理するべく、および／またはその他の理由により動作中にメモリ１１４にコピーされ得る。
【００２５】
ここで図２を参照すると、使用する際、コンピューティングデバイス１１０は、動作中に環境２００を確立する。例示的な環境２００は、ＡＣＰＩサブシステムモジュール１２０、オペレーティングシステム（ＯＳ）１２６、デフォルトのＡＣＰＩドライバロジック２０２、および仮想デバイスドライバロジック２０４を含む。環境２００におけるモジュール、ロジック、および複数の他のコンポーネントの各々は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせとして実施され得る。コンピューティングデバイス１１０は、複数の他のコンポーネント、サブコンポーネント、モジュール、およびコンピューティングデバイスに一般に見られる複数のデバイスを含み得、これらは記載を見やすくするべく図２に図示されていないことを理解されたい。
【００２６】
ＡＣＰＩサブシステムモジュール１２０は、コンピューティングデバイス１１０上で初期化（例えば、ブート、ロード、実行等）されるオペレーティングシステム１２６とインタラクトおよび／または通信するように構成され得る。それを行うべく、ＡＣＰＩサブシステムモジュール１２０は、デフォルトのＡＣＰＩドライバロジック２０２と通信し得る。以下に検討されるように、いくつかの実施形態において、デフォルトのＡＣＰＩドライバロジック２０２は、複数の他のドライバ（例えば、仮想デバイスドライバロジック２０４、ビデオデバイスドライバロジック、入力／出力ドライバロジック等）を初期化する前にＯＳ１２６により初期化され得る。複数のそのような実施形態において、ＡＣＰＩサブシステムモジュール１２０は、コンピューティングデバイス１１０の１または複数の他のコンポーネントおよび／または機能を初期化する前にＯＳ１２６とインタラクトし得る。
【００２７】
いくつかの実施形態において、ＡＣＰＩサブシステムモジュール１２０は、仮想ＡＣＰＩデバイスに対応するデバイスデータおよび／またはオブジェクトデータ、ならびに関連付けられるＯＳ固有の機能仕様を１または複数のＡＣＰＩテーブルにロードするように構成され得る。仮想ＡＣＰＩデバイスは、ブート処理中にＯＳ１２６によりエニュメレートされ得る仮想ＡＣＰＩオブジェクトまたは任意のタイプのＡＣＰＩコンポーネントとして実施され得る。仮想ＡＣＰＩデバイスに関連付けられるＯＳ固有の機能仕様は、デバイス固有の方法または「＿ＤＳＭ」として実施され得る。しかし、ＯＳ固有の機能仕様は、本明細書において説明される複数の機能を実行するように構成されたその他のタイプのＡＣＰＩ制御方法（例えば、カスタムの制御方法等）、オブジェクト、またはその他のタイプのＡＣＰＩコンポーネントとして実施され得ることを理解されたい。いくつかの実施形態において、仮想ＡＣＰＩデバイスおよびＯＳ固有の機能仕様がＡＣＰＩ名前空間において宣言され、ＯＳ１２６によりこれらのデバイス／オブジェクトを後でエニュメレートすることを容易にし得る。
【００２８】
いくつかの実施形態において、ＡＣＰＩサブシステムモジュール１２０は、初期化（例えば、ロード、ブート、実行等）される特定のＯＳ１２６に基づいて１または複数の機能を実行するようにも構成され得る。複数のそのような実施形態において、ＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」）は、任意の数の異なるオペレーティングシステム（例えば、図５および６、ならびに関連する検討を参照されたい）に関連して実行される１または複数のＯＳ固有の機能を含み得る。例えば、ＯＳ固有の機能としては、１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを特定のＯＳ１２６に公開し、特定のＯＳ１２６に対する１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを有効にし（例えば、複数の機能および／またはオブジェクトをＡＣＰＩ名前空間に追加する、ロードする等）、１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを特定のＯＳ１２６に対して非表示にし（例えば、公開を阻止する）、および／または特定のＯＳ１２６に対する１または複数のＯＳ固有のプラットフォーム機能および／またはＯＳ固有のプラットフォームオブジェクトを無効にする（例えば、機能および／またはオブジェクトをＡＣＰＩ名前空間から削除する、アンロードする等）機能を含み得る。ＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」）に含まれる各ＯＳ１２６は、ユニーク識別子（例えば、グローバルユニーク識別子または「ＧＵＩＤ」、汎用ユニーク識別子または「ＵＵＩＤ」等）により識別され得る。各ＯＳ１２６に対するユニーク識別子は、ＯＳ１２６を他のＯＳ１２６からユニークに識別する１または複数の文字、数字、シンボル、文字列等として実施され得る。以下により詳細に検討されるように、初期化されたＯＳ１２６に基づいて実行される複数の特定の機能を制御することにより、ハードウェア供給元および／またはデバイス管理者は、初期化される特定のＯＳ１２６に利用可能な複数のＯＳ固有の機能および／またはオブジェクトを選択的に有効および／または無効にし得る。
【００２９】
ＡＣＰＩサブシステムモジュール１２０は、初期化される特定のＯＳ１２６に基づいて、どのＯＳ固有の機能が実行されるべきかを決定するようにも構成され得る。それを行うべく、ＡＣＰＩサブシステムモジュール１２０は、仮想デバイスドライバロジック２０４からの呼び出しを受信するように構成される。いくつかの実施形態において、仮想デバイスドライバロジック２０４から受信された呼び出しは、初期化されたＯＳ１２６のユニーク識別子を含む。従って、ＡＣＰＩサブシステムモジュール１２０は、ＯＳ固有の機能仕様（例えば「＿ＤＳＭ」）を分析して、受信されたユニーク識別子がＯＳ固有の機能仕様内に含まれる複数のＯＳ固有の機能に関連付けられるユニーク識別子のいずれかに一致するかを判断するように構成される。受信されたユニーク識別子がＯＳ固有の機能仕様内の複数のユニーク識別子のうちの１つに一致するとＡＣＰＩサブシステムモジュール１２０が判断した場合、ＡＣＰＩサブシステムモジュール１２０は、対応する機能を実行するように構成され得る。
【００３０】
複数の他の実施形態において、ＡＣＰＩサブシステムモジュール１２０は、仮想デバイスドライバロジック２０４から受信された１または複数の機能識別子に基づいて１または複数の機能を実行するように構成され得る。複数のそのような実施形態において、ＡＣＰＩサブシステムモジュール１２０は、仮想ＡＣＰＩデバイスに対応するデバイスデータおよび／またはオブジェクトデータ、ならびに仮想ＡＣＰＩデバイスに関連付けられる一般的機能仕様を１または複数のＡＣＰＩテーブルにロードするように構成され得る。仮想ＡＣＰＩデバイスに関連する機能仕様は、デバイス固有の方法または「＿ＤＳＭ」として実施され得、異なる様々なオペレーティングシステム（ＯＳ）に対する１または複数のＯＳ固有の機能を含み得る。いくつかの実施形態において、複数のＯＳ固有の機能の各々は付番され、またはそうでなければ機能識別子を含み得る。ＯＳ固有の各機能の機能識別子は、ＯＳ固有の機能を他のＯＳ固有の機能からユニークに識別する１または複数の文字、数字、シンボル、文字列等として実施され得る。従って、ＡＣＰＩサブシステムモジュール１２０により受信された呼び出しは、初期化されたＯＳ１２６に対して実行されるべき１または複数のＯＳ固有の機能に対応する１または複数のユニーク機能識別子を含み得る。ＡＣＰＩサブシステムモジュール１２０は、機能仕様（例えば「＿ＤＳＭ」）を分析して、受信された機能識別子のうちの１または複数が機能仕様内に含まれる複数の機能識別子のいずれかに一致するかを判断するように構成される。受信された機能識別子が機能仕様内の複数の機能識別子のうちの１つに一致するとＡＣＰＩサブシステムモジュール１２０が判断した場合、ＡＣＰＩサブシステムモジュール１２０は、対応する機能を実行するように構成され得る。
【００３１】
オペレーティングシステム（ＯＳ）１２６は、本明細書において説明される複数の機能を実行し、および／または複数の機能を提供するための任意のタイプのＯＳ、または他の類似のセットの命令として実施され得る。例えば様々な実施形態において、ＯＳ１２６は、ワシントン州レドモンド市のマイクロソフトコーポレーションから市販されるウィンドウズ（登録商標）のバージョン、（カリフォルニア州マウンテンビュー市のグーグルインコーポレイテッドから市販されるアンドロイド（商標）を含む）Ｌｉｎｕｘ（登録商標）のバージョン、カリフォルニア州クパチーノ市のアップルインコーポレイテッドから市販され、ＵＮＩＸ（登録商標）のバージョンであるＯＳ  Ｘ（登録商標）、および／またはその他のタイプのＯＳ１２６として実施され得る。使用時に、ＯＳ１２６は、コンピューティングデバイス１１０により実行される１または複数のアプリケーションに対するハードウェアおよびソフトウェアリソースを管理し得る。いくつかの実施形態においてＯＳ１２６は、デフォルトのＡＣＰＩドライバロジック２０２および／または仮想デバイスドライバロジック２０４により、ＡＣＰＩサブシステムモジュール１２０、またはＡＣＰＩサブシステムの１もしくは複数のコンポーネント（例えば、仮想ＡＣＰＩデバイス、ＯＳ固有の機能仕様、機能仕様等）と通信および／またはインタラクトするように構成され得る。例えばコンピューティングデバイス１１０によりＯＳ１２６を初期化する間、ＯＳ１２６は（関連付けられるＯＳローダーまたは他のコンポーネントを介して）デフォルトのＡＣＰＩドライバロジック２０２を初期化および／またはロードし得る。デフォルトのＡＣＰＩドライバロジック２０２は、ＯＳ１２６を有効にしてＡＣＰＩサブシステムモジュール１２０とインタラクトおよび／または通信するように構成され得る。またＯＳ１２６は、仮想デバイスドライバロジック２０４を初期化し得る。仮想デバイスドライバロジック２０４は以下により詳細に検討されるように、ＯＳ１２６を有効にしてＡＣＰＩサブシステムモジュール１２０によりロードされた仮想ＡＣＰＩデバイスとインタラクトおよび／または通信するように構成され得る。
【００３２】
デフォルトのＡＣＰＩドライバロジック２０２は、ＡＣＰＩサブシステムモジュール１２０、またはＡＣＰＩサブシステムモジュール１２０の１もしくは複数のコンポーネント（例えば、仮想ＡＣＰＩデバイス、ＯＳ固有の機能仕様、機能仕様等）と通信および／またはインタラクトするように構成され得る。いくつかの実施形態において、デフォルトのＡＣＰＩドライバロジック２０２は、ＯＳ１２６のブート処理の初期段階中に初期化されるように構成され得る。例えばデフォルトのＡＣＰＩドライバロジック２０２は、他のドライバロジック（例えば、仮想デバイスドライバロジック２０４、ビデオデバイスドライバロジック、入力／出力ドライバロジック等）を初期化する前にＯＳ１２６により初期化され得る。複数のそのような実施形態において、ＡＣＰＩサブシステムモジュール１２０は、コンピューティングデバイス１１０の１または複数の他のコンポーネントおよび／または機能を初期化する前にＯＳ１２６とインタラクトし得る。デフォルトのＡＣＰＩドライバロジック２０２は、例示的な実施形態において「デフォルトの」ＡＣＰＩドライバロジックとして説明されるが、デフォルトのＡＣＰＩドライバロジック２０２は、任意のタイプのドライバロジック（例えば、ＯＳ供給元および／またはハードウェア供給元により提供される標準またはユニバーサルＡＣＰＩドライバロジック、オープンソースＡＣＰＩドライバロジック、占有ドライバロジック等）であってもよいことを理解されたい。従って本明細書において用いられるように、「デフォルトのＡＣＰＩドライバロジック」という用語が、ＯＳ１２６の初期化中にＯＳ１２６とＡＣＰＩサブシステムモジュール１２０との間の複数の初期インタラクションを可能にするように構成された任意のドライバロジックを包含することが意図される。
【００３３】
仮想デバイスドライバロジック２０４は、ＡＣＰＩサブシステムモジュール１２０によりロードされた仮想ＡＣＰＩデバイスとインタラクトおよび／または通信するように構成され得る。いくつかの実施形態において、仮想デバイスドライバロジック２０４は、デフォルトのＡＣＰＩドライバロジック２０２を初期化した後にＯＳ１２６により初期化され得る。仮想デバイスドライバロジック２０４は、ロードされる（例えば、初期化され、ブートされ、実行される等）特定のＯＳ１２６に固有であり得、どのＯＳ固有の機能がＡＣＰＩサブシステムモジュール１２０により実行されるべきかを判断することを容易にし得る（例えば、図５および６、ならびに関連する検討を参照されたい）。例えばいくつかの実施形態において、仮想デバイスドライバロジック２０４は、どのＯＳ１２６と仮想デバイスドライバがインタラクトするように構成されているかをユニークに識別するユニーク識別子（例えば、ＧＵＩＤ、ＵＵＩＤ等）を含み得る。複数の他の実施形態において、仮想デバイスドライバロジック２０４は、初期化されるＯＳ１２６に対して実行されるべき複数のＯＳ固有の機能をユニークに識別する１または複数の機能識別子を含み得る。複数のそのような実施形態において、以下に検討されるように、仮想デバイスドライバロジック２０４は、初期化されるＯＳ１２６のユニーク識別子、および／または実行されるべき特定の機能に関連付けられる機能識別子を含むＡＣＰＩサブシステムモジュール１２０に呼び出しを送信するように構成され得る。ＡＣＰＩサブシステムモジュール１２０は、受信された識別子を比較して、ＯＳ１２６に対して実行されるべき複数のＯＳ固有の機能を決定し得る。
【００３４】
ここで図３を参照すると、コンピューティングデバイス１１０は、複数のプラットフォーム固有の機能を選択的に有効にするための方法３００を実行し得る。方法３００はブロック３０２で開始し、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、仮想ＡＣＰＩデバイスを示すデバイスデータおよび／またはオブジェクトデータ（例えば、仮想ＡＣＰＩオブジェクト等）、ならびに関連付けられるＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」、制御方法等）を１または複数のＡＣＰＩテーブル（例えば、図４に例示的に示されたデータフロー４０２）へとロードする。ＡＣＰＩテーブルは、コンピューティングデバイス１１０上に格納された任意のタイプのデータ構造体として実施され得、ＡＣＰＩサブシステム１２０またはその任意のコンポーネントに関連付けられるデータは、ＡＣＰＩサブシステム１２０および／またはロードされるＯＳ１２６により後で用いられるように格納され得る。例えばいくつかの実施形態において、ＡＣＰＩテーブルは、初期化中および／または実行の後の段階（例えば、ランタイム）の間にＯＳ１２６によりエニュメレートされ、および／またはインタラクトし得る１または複数のＡＣＰＩデバイス、機能、オブジェクト、デバイス固有の方法等を含み得る。いくつかの実施形態において、ＡＣＰＩテーブルにロードされるデバイスデータは、コンピューティングデバイス１１０のＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからロードされ得る。しかし、ＡＣＰＩテーブルにロードされるデバイスデータは、コンピューティングデバイス１１０のその他のコンポーネント（例えば、メモリ１１４、データストレージ１２４等）からロードされ得ることを理解されたい。いくつかの実施形態では、ブロック３０４および３０６において仮想ＡＣＰＩデバイスおよびＯＳ固有の機能仕様がＡＣＰＩ名前空間で宣言され、ブート処理中（例えば、ＯＳ１２６の初期化）および／または通常の実行中（例えば、ランタイム）にＯＳ１２６による後のエニュメレーションおよび／またはＯＳ１２６とのインタラクションを容易にし得る。
【００３５】
検討されるように、いくつかの実施形態において仮想ＡＣＰＩデバイスに関連付けられるＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」）は、異なる様々なオペレーティングシステム（ＯＳ）に対する１または複数のＯＳ固有の機能を含み得る。ＯＳ固有の機能仕様に含まれる各ＯＳ１２６は、ユニーク識別子（例えば、グローバルユニーク識別子または「ＧＵＩＤ」、汎用ユニーク識別子または「ＵＵＩＤ」等）により識別され得る。更にいくつかの実施形態において、ＯＳ固有の機能は、それが関連付けられる特定のＯＳ１２６に基づいてグループ化され得る。複数のそのような実施形態において、特定のＯＳ１２６に対するユニーク識別子は、当該ＯＳ１２６に対するＯＳ固有の機能を他のＯＳ１２６に対するＯＳ固有の機能からグループ化する（例えば、パーティショニングし、分離し、配置する等）べく用いられ得る。例えば図５に例示的に示されるように、ＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」５００）は、その中で列挙される各ＯＳ１２６に対する１または複数のＯＳ固有の機能５１２、５２２、５３２を含み得る。ＯＳ固有の機能５１２、５２２、５３２は、それらが関連付けられる特定のＯＳ１２６に応じてグループ化され、またはそうでなければ配置され得る。ＯＳ固有の機能５１２、５２２、５３２をグループ化することを容易にすべく、ＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」５００）の各ＯＳ１２６は、異なるユニーク識別子（例えば、ＧＵＩＤ５１０、５２０、５３０）にも関連し得る。いくつかの実施形態において、複数のユニーク識別子（例えば、ＧＵＩＤ５１０、５２０、５３０）は、初期化（例えば、ロード、ブート、実行等）される特定のＯＳ１２６の識別に基づいて１または複数のＯＳ固有の機能５１２、５２２、５３２を後で実行することも容易にするようにも用いられ得る。
【００３６】
再び図３を参照すると、ブロック３０８においてＡＣＰＩサブシステム１２０は、デバイスデータを、ＡＣＰＩテーブルからブートされるＯＳ１２６により初期化されたデフォルトのＡＣＰＩドライバ２０２へと送信する（例えば、図４に例示的に示されたデータフロー４０４および４０６）。いくつかの実施形態において、デフォルトのＡＣＰＩドライバ２０２は、複数の他のドライバ（例えば、仮想デバイスドライバ２０４、ビデオデバイスドライバ、入力／出力ドライバ等）を初期化する前にＯＳ１２６により初期化され得る。複数のそのような実施形態において、デフォルトのＡＣＰＩドライバ２０２は、コンピューティングデバイス１１０の１または複数の他のコンポーネントおよび／または機能を初期化する前に、ＯＳ１２６がＡＣＰＩサブシステム１２０と通信し、インタラクトし、またはそうでなければインターフェース接続することを可能にするように構成される。更にいくつかの実施形態において、デフォルトのＡＣＰＩドライバ２０２に送信されたデバイスデータはＯＳ１２６により、仮想ＡＣＰＩデバイスおよび／またはＡＣＰＩサブシステム１２０のその他のＡＣＰＩデバイス、機能、コンポーネント、オブジェクト、制御方法等をエニュメレートするために用いられ得る（例えば、図４に例示的に示されたデータフロー４０８）。デフォルトのＡＣＰＩドライバ２０２は、例示的な実施形態において「デフォルトの」ＡＣＰＩドライバとして説明されるが、デフォルトのＡＣＰＩドライバ２０２は、任意のタイプのドライバ（例えば、ＯＳ供給元および／またはハードウェア供給元により提供される標準またはユニバーサルＡＣＰＩドライバ、オープンソースＡＣＰＩドライバ、占有ドライバ等）であってもよいことを理解されたい。従って本明細書において用いられるように、「デフォルトのＡＣＰＩドライバ」という用語が、ＯＳ１２６の初期化中にＯＳ１２６とＡＣＰＩサブシステム１２０との間の複数の初期インタラクションを可能にするように構成された任意のドライバを包含することが意図される。
【００３７】
ブロック３１０においてコンピューティングデバイス１１０は、ＡＣＰＩサブシステム１２０においてＯＳ固有の機能仕様に呼び出しを送信する（例えば、図４に例示的に示されたデータフロー４１２）。いくつかの実施形態において、ＯＳ固有の機能仕様に対する呼び出しは、仮想デバイスドライバ２０４により送信され、仮想デバイスドライバ２０４は、ブートされるＯＳ１２６により初期化され得る。（例えば、図４に例示的に示されたデータフロー４１０）。更にいくつかの実施形態において、仮想デバイスドライバ２０４は、デフォルトのＡＣＰＩドライバ２０２を初期化した後にＯＳ１２６により初期化され得、ＡＣＰＩサブシステム１２０の仮想ＡＣＰＩデバイスとインターフェース接続する（例えば、インタラクトし、通信する等）ように構成されている。検討されるように、仮想デバイスドライバ２０４は、ロードされる特定のＯＳ１２６に固有であり得、当該ＯＳ１２６を他のＯＳ１２６からユニークに識別するユニーク識別子（例えば、ＧＵＩＤ、ＵＵＩＤ等）を含み得る。従って、ＡＣＰＩサブシステム１２０におけるＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」）に対する呼び出しは、仮想デバイスドライバ２０４から得られたユニーク識別子に基づいてロードされるＯＳ１２６のユニーク識別子（例えば、ＧＵＩＤ）を含み得る。更にいくつかの実施形態では、ブロック３１２において仮想デバイスドライバ２０４は、ＡＣＰＩサブシステム１２０において呼び出しによりユニーク識別子（例えば、ＧＵＩＤ）をＯＳ固有の機能仕様（例えば「＿ＤＳＭ」）に対する引数として渡し得る。ユニーク識別子（例えば、ＧＵＩＤ）を送信し、またはそうでなければ供給するためのその他の技術も、コンピューティングデバイス１１０および／または仮想デバイスドライバ２０４により用いられ得ることを理解されたい。
【００３８】
ブロック３１４において、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、仮想デバイスドライバ２０４からロードされるＯＳ１２６のユニーク識別子（例えば、ＧＵＩＤ）を含む呼び出しを受信する。その次に、ブロック３１６においてコンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、ＯＳ固有の機能仕様（例えば、「＿ＤＳＭ」）を分析して、仮想デバイスドライバ２０４から呼び出しと共に受信されたユニーク識別子（例えば、ＧＵＩＤ）に基づいて初期化されたＯＳ１２６に対して実行されるべき１または複数のＯＳ固有の機能を決定する。それを行うべく、ＡＣＰＩサブシステム１２０は、初期化されるＯＳの仮想デバイスドライバ２０４から受信されたユニーク識別子を、ＯＳ固有の機能仕様（例えば「＿ＤＳＭ」）に含まれる複数のユニーク識別子と比較し得る。受信されたユニーク識別子がＯＳ固有の機能仕様に含まれる複数のユニーク識別子のうちの１つと一致するとの判断に応答して、ＡＣＰＩサブシステム１２０は、一致する識別子と関連付けられるＯＳ１２６に対するＯＳ固有の機能が実行されるべきであると決定し得る。
【００３９】
ブロック３１８において、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、受信されたユニーク識別子に基づいて決定されたＯＳ１２６に対するＯＳ固有の機能を実行する。例えばいくつかの実施形態では、ブロック３２０においてＡＣＰＩサブシステム１２０は、ＯＳ固有の機能および／またはＯＳ固有のオブジェクトを初期化されるＯＳ１２６に公開する（例えば、図４に例示的に示されたデータフロー４１４）。更にまたは代替的に、ブロック３２２においてＡＣＰＩサブシステム１２０は、ＯＳ固有の機能および／またはＯＳ固有のオブジェクトを初期化されるＯＳ１２６に対して非表示にする。
【００４０】
まず、初期化されるＯＳ１２６および／またはＯＳ１２６に対して実行されるべき複数の特定の機能を識別することに応答して実行される複数の特定の機能を制御することにより、ＡＣＰＩサブシステム１２０は、初期化されるＯＳ１２６に対する複数のＯＳ固有の機能を選択的に有効および／または無効にし得ることを理解されたい。例えば図７に例示的に示されるように、コンピューティングデバイス１１０は、複数の機能のプール７００、および／または異なる様々なＯＳ１２６（例えば、ＯＳ＿１  ７０４、ＯＳ＿２  ７０５、ＯＳ＿３  ７０６、ＯＳ＿４  ７０７）により用いられる複数のオブジェクト７１０を提供するファームウェア（例えば、ＢＩＯＳ１１８）を含み得る。いくつかの実施形態において、ファームウェアにより提供される複数の機能および／またはオブジェクト７１０のうちの１または複数は、ＯＳ固有であり得る。例えばファームウェアは、ＯＳ＿１  ７０４に固有の複数の機能および／またはオブジェクト７４０のグループ（例えば、Ａ１  ７４２、Ａ２  ７４４、Ａ３  ７４６、Ａ４  ７４８）と、ＯＳ＿２  ７０５に固有の複数の機能および／またはオブジェクト７５０のグループ（例えば、Ｂ１  ７５２）と、ＯＳ＿３  ７０６に固有の複数の機能および／またはオブジェクト７６０のグループ（例えば、Ｃ１  ７６２、Ｃ２  ７６４、Ｃ３  ７６６）と、ＯＳ＿４  ７０７に固有の複数の機能および／またはオブジェクト７７０のグループ（例えば、Ｄ１  ７７２、Ｄ２  ７７４）とを含み得る。いくつかの実施形態において、仮想ＡＣＰＩオブジェクト７３０（例えば、仮想ＡＣＰＩデバイス）およびＡＣＰＩサブシステム１２０の複数の他のコンポーネントは、初期化されるＯＳ１２６（例えば、ＯＳ＿１  ７０４）とインタラクトするように構成され得る。初期化される特定のＯＳ１２６（例えば、ＯＳ_１  ７０４）を識別することに応答して、ＡＣＰＩサブシステム１２０は、初期化されない他のＯＳ１２６（例えば、ＯＳ＿２  ７０５、ＯＳ＿３  ７０６、ＯＳ＿４  ７０７）と関連付けられる複数の機能および／またはオブジェクト（例えば、Ｂ１  ７５２、Ｃ１  ７６２、Ｃ２  ７６４、Ｃ３  ７６６、Ｄ１  ７７２、Ｄ２  ７７４）を無効または非表示７２０にするように構成されたＯＳ＿１  ７０４に固有の１または複数の機能を実行し得る。更にＡＣＰＩサブシステム１２０は、ＯＳ＿１  ７０４に関連付けられる複数の機能および／またはオブジェクト（例えば、Ａ１  ７４２、Ａ２  ７４４）のうちの１または複数を有効にし、または公開するように構成されたＯＳ＿１  ７０４に固有の１または複数の機能を実行し得る。更にまたは代替的に、ＡＣＰＩサブシステム１２０は、ＯＳ＿１  ７０４に関連付けられる複数の機能および／またはオブジェクト（例えば、Ａ３  ７４６、Ａ４  ７４８）のうちの１または複数を無効または非表示にするように構成されたＯＳ＿１  ７０４に固有の１または複数の機能を実行し得る。
【００４１】
ここで図８を参照すると、初期化される異なるＯＳ１２６（例えば、ＯＳ＿３  ７０６）の複数の機能を選択的に有効および無効にする別の図示的な例が示されている。示されるように、初期化されるＯＳ_３  ７０６を識別することに応答して、ＡＣＰＩサブシステム１２０は、初期化されない他のＯＳ１２６（例えば、ＯＳ＿１  ７０４、ＯＳ＿２  ７０５、ＯＳ＿４  ７０７）と関連付けられる複数の機能および／またはオブジェクト（例えば、Ａ１  ７４２、Ａ２  ７４４、Ａ３  ７４６、Ａ４  ７４８、Ｂ１  ７５２、Ｄ１  ７７２、Ｄ２  ７７４）を無効または非表示７２０にするように構成されたＯＳ＿３  ７０６に固有の１または複数の機能を実行し得る。更にＡＣＰＩサブシステム１２０は、ＯＳ＿３  ７０６に関連付けられる複数の機能および／またはオブジェクト（例えば、Ｃ１  ７６２、Ｃ２  ７６４）のうちの１または複数を有効にし、または公開するように構成されたＯＳ＿３  ７０６に固有の１または複数の機能を実行し得る。更にまたは代替的に、ＡＣＰＩサブシステム１２０は、ＯＳ＿３  ７０６に関連付けられる複数の機能および／またはオブジェクト（例えば、Ｃ３  ７６６）のうちの１または複数を無効または非表示にするように構成されたＯＳ＿３  ７０６に固有の１または複数の機能を実行し得る。
【００４２】
ここで図９を参照すると、いくつかの実施形態においてコンピューティングデバイス１１０は、複数のプラットフォーム固有の機能を選択的に有効にするための方法９００を実行し得る。方法９００はブロック９０２で開始し、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、仮想ＡＣＰＩデバイスを示すデバイスデータおよび／またはオブジェクトデータ（例えば、仮想ＡＣＰＩオブジェクト等）、ならびに関連付けられる機能仕様（例えば、「＿ＤＳＭ」、制御方法等）を１または複数のＡＣＰＩテーブル（例えば、図１０に例示的に示されたデータフロー１００２）へとロードする。ＡＣＰＩテーブルは、コンピューティングデバイス１１０上に格納された任意のタイプのデータ構造体として実施され得、ＡＣＰＩサブシステム１２０またはその任意のコンポーネントに関連付けられるデータは、ＡＣＰＩサブシステム１２０および／またはロードされるＯＳ１２６により後で用いられるように格納され得る。いくつかの実施形態において、ＡＣＰＩテーブルにロードされるデバイスデータは、コンピューティングデバイス１１０のＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからロードされ得る。しかし、ＡＣＰＩテーブルにロードされるデバイスデータは、コンピューティングデバイス１１０のその他のコンポーネント（例えば、メモリ１１４、データストレージ１２４等）からロードされ得ることを理解されたい。いくつかの実施形態では、ブロック９０４および９０６において仮想ＡＣＰＩデバイスおよび機能仕様（例えば「＿ＤＳＭ」）がＡＣＰＩ名前空間において宣言され、ブート処理中（例えば、ＯＳ１２６の初期化）にＯＳ１２６による後のエニュメレーションを容易にし得る。
【００４３】
検討されるように、いくつかの実施形態において仮想ＡＣＰＩデバイスに関連付けられる機能仕様（例えば、「＿ＤＳＭ」）は、異なる様々なオペレーティングシステム（ＯＳ）に対する１または複数のＯＳ固有の機能を含み得る。複数のそのような実施形態において、機能仕様は、含まれる全てのＯＳ固有の機能およびＯＳ１２６と共に用いる識別子（例えば、ＧＵＩＤ、ＵＵＩＤ等）を含み得る。しかし、複数のＯＳ固有の機能の各々は付番され、またはそうでなければ機能識別子を含み、ＡＣＰＩサブシステム１２０による後の識別を容易にし得る。ＯＳ固有の各機能の機能識別子は、ＯＳ固有の機能を他のＯＳ固有の機能からユニークに識別する１または複数の文字、数字、シンボル、文字列等として実施され得る。以下により詳細に検討されるように、複数のＯＳ固有の機能およびそれらの関連付けられる機能識別子は、仮想デバイスドライバ２０４内に含まれる１または複数のＯＳ固有の機能および機能識別子に対応し得る。いくつかの実施形態において、複数のＯＳ固有の機能は、それらが関連付けられる特定のＯＳ１２６に基づいて機能仕様内でグループ化または配置され得る。更にそのような実施形態において、複数のＯＳ固有の機能が連続して付番され、ＡＣＰＩサブシステム１２０による後の識別を容易にし得る。例えば図６に例示的に示されるように、機能仕様（例えば、「＿ＤＳＭ」６００）は、１または複数のＯＳ１２６に対する１または複数のＯＳ固有の機能６１２を含み得る。ＯＳ固有の機能６１２は、それらが関連付けられる特定のＯＳ１２６に応じてグループ化され、またはそうでなければ配置され得る。更に、例示的な機能仕様（例えば「＿ＤＳＭ」６００）は、それに含まれる複数のＯＳ固有の機能６１２の全てと共に用いる１つの識別子（例えば、ＧＵＩＤ６１０）を含む。
【００４４】
再び図９を参照すると、ブロック９０８においてＡＣＰＩサブシステム１２０は、デバイスデータを、ＡＣＰＩテーブルからブートされるＯＳ１２６により初期化されたデフォルトのＡＣＰＩドライバ２０２へと送信する（例えば、図１０に例示的に示されたデータフロー１００４および１００６）。いくつかの実施形態において、デフォルトのＡＣＰＩドライバ２０２は、複数の他のドライバ（例えば、仮想デバイスドライバ２０４、ビデオデバイスドライバ、入力／出力ドライバ等）を初期化する前にＯＳ１２６により初期化され得る。複数のそのような実施形態において、デフォルトのＡＣＰＩドライバ２０２は、コンピューティングデバイス１１０の１または複数の他のコンポーネントおよび／または機能を初期化する前に、ＯＳ１２６がＡＣＰＩサブシステム１２０と通信し、インタラクトし、またはそうでなければインターフェース接続することを可能にするように構成される。いくつかの実施形態において、デフォルトのＡＣＰＩドライバ２０２に送信されたデバイスデータは、ＯＳ１２６により用いられ、仮想ＡＣＰＩデバイスをエニュメレートし得る（例えば、図１０に例示的に示されたデータフロー１００８）。
【００４５】
ブロック９１０においてコンピューティングデバイス１１０は、ＡＣＰＩサブシステム１２０において機能仕様に呼び出しを送信する（例えば、図１０に例示的に示されたデータフロー１０１２）。いくつかの実施形態において、ＡＣＰＩサブシステム１２０における機能仕様に対する呼び出しは、仮想デバイスドライバ２０４により送信され、仮想デバイスドライバ２０４は、ブートされるＯＳ１２６により初期化され得る。（例えば、図１０に例示的に示されたデータフロー１０１０）。更にいくつかの実施形態において、仮想デバイスドライバ２０４は、デフォルトのＡＣＰＩドライバ２０２を初期化した後にＯＳ１２６により初期化され得、ＡＣＰＩサブシステム１２０の仮想ＡＣＰＩデバイスとインターフェース接続する（例えば、インタラクトし、通信する等）ように構成されている。仮想デバイスドライバ２０４は、ロードされる特定のＯＳ１２６に固有であり得、１または複数のＯＳ固有の機能の一覧を含み得る。いくつかの実施形態において、列挙されるＯＳ固有の各機能は、機能仕様（例えば「＿ＤＳＭ」）に含まれる異なるＯＳ固有の機能に対応し得る。同様に、列挙されたＯＳ固有の各機能は、機能仕様に含まれる、対応するＯＳ固有の機能の機能識別子と一貫性がある機能識別子を含み得る。従って、ＡＣＰＩサブシステム１２０における機能仕様（例えば「＿ＤＳＭ」）に対する呼び出しは、実行されるべき１または複数のＯＳ固有の機能に関連付けられる１または複数の機能識別子を含み得る。更にいくつかの実施形態では、ブロック９１２において仮想デバイスドライバ２０４は、ＡＣＰＩサブシステム１２０において呼び出しにより機能識別子を機能仕様（例えば「＿ＤＳＭ」）に対する引数として渡し得る。機能識別子を送信し、またはそうでなければ供給するためのその他の技術も、コンピューティングデバイス１１０および／または仮想デバイスドライバ２０４により用いられ得ることを理解されたい。
【００４６】
ブロック９１４において、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、仮想デバイスドライバ２０４から機能識別子を含む呼び出しを受信する。その次に、ブロック９１６においてコンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、機能仕様（例えば、「＿ＤＳＭ」）を分析して、仮想デバイスドライバ２０４から呼び出しと共に受信された機能識別子に基づいて初期化されたＯＳ１２６に対して実行されるべき１または複数のＯＳ固有の機能を決定する。それを行うべく、ＡＣＰＩサブシステム１２０は、初期化されるＯＳの仮想デバイスドライバ２０４から受信された機能識別子を、機能仕様（例えば「＿ＤＳＭ」）に含まれる対応する機能識別子と比較し得る。受信された機能識別子が機能仕様に含まれる対応する機能識別子のうちの１つと一致するとの判断に応答して、ＡＣＰＩサブシステム１２０は、一致する機能識別子と関連付けられるＯＳ固有の機能が実行されるべきであると決定し得る。
【００４７】
ブロック９１８において、コンピューティングデバイス１１０のＡＣＰＩサブシステム１２０は、受信された機能識別子に基づいて決定されたＯＳ１２６に対するＯＳ固有の機能を実行する。例えばいくつかの実施形態では、ブロック９２０においてＡＣＰＩサブシステム１２０は、ＯＳ固有の機能および／またはＯＳ固有のオブジェクトを初期化されるＯＳ１２６に公開する（例えば、図１０に例示的に示されたデータフロー１０１４）。更にまたは代替的に、ブロック９２２においてＡＣＰＩサブシステム１２０は、ＯＳ固有の機能および／またはＯＳ固有のオブジェクトを初期化されるＯＳ１２６に対して非表示にする。
【００４８】
本明細書において開示される複数の技術を用いることにより、ハードウェア供給元および／またはコンピューティングデバイス管理者は、初期化される（例えばブートされ、ロードされ、実行される等）特定のオペレーティングシステム１２６に基づいて、複数のＯＳ固有の機能および／またはオブジェクトを選択的に有効および無効にし得ることを理解されたい。それを行うべく、ハードウェア供給元および／またはコンピューティングデバイス管理者は、同一または類似のハードウェアデバイスおよび／またはプラットフォーム上で異なる様々なＯＳ１２６をサポートするように構成されたファームウェア（例えば、ＢＩＯＳ１１８、ＡＣＰＩサブシステム１２０等）をリリースする場合がある。ファームウェアは、仮想ＡＣＰＩデバイス（例えば、仮想ＡＣＰＩオブジェクト）およびそれに関連付けられるＯＳ固有の機能仕様（または機能仕様）を含むＡＣＰＩサブシステム１２０および／またはフレームワークを提供し得る。別個の、ＯＳ固有の仮想デバイスドライバもサポートされる各ＯＳに提供され得る。各仮想デバイスドライバ２０４は、ブートされるＯＳ１２６により初期化されると、ブートされる特定のＯＳ１２６の識別および／またはＡＣＰＩサブシステム１２０により確認される１または複数のＯＳ固有の機能の識別を有効にする。これに応答してＡＣＰＩサブシステム１２０は、初期化されるＯＳ１２６に固有の機能を実行し得る。従って、ブートされる特定のＯＳ１２６の識別および／またはブートされる特定のＯＳ１２６に対して実行される特定の機能の識別に基づいて実行されるべき複数の特定の機能を制御することにより、ハードウェア供給元は、ＡＣＰＩサブシステム１２０を用いて、当該ＯＳ１２６に対する複数のＯＳ固有の機能および／またはオブジェクトを選択的に有効および無効にし得る。
【００４９】
［例］
本明細書において開示される複数の技術の図示的な例が以下に提供される。複数の技術の実施形態は、以下に説明される複数の例の任意の１または複数、およびその任意の組み合わせを含み得る。
【００５０】
例１は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスに関連付けられるオペレーティングシステム（ＯＳ）固有の機能仕様を有し、ＯＳ固有の機能仕様が、複数のＯＳ固有の機能を含むＡＣＰＩサブシステムと、コンピューティングデバイスのＯＳにより初期化され、（ｉ）ＡＣＰＩサブシステムの仮想デバイスとインターフェース接続し、（ｉｉ）ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に、ＯＳを他の複数のオペレーティングシステムからユニークに識別するＯＳの識別子を含む呼び出しを送信する仮想デバイスドライバロジックとを備え、ＡＣＰＩサブシステムが、（ｉ）ＯＳ固有の機能仕様を分析して、ＯＳをユニークに識別する呼び出しからの識別子に基づいて、ＯＳのための複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定し、（ｉｉ）識別子に基づいてＯＳに対して決定された１または複数のＯＳ固有の機能を実行する。
【００５１】
例２は例１の主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む。
【００５２】
例３は例１および２のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００５３】
例４は例１〜３のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００５４】
例５は例１〜４のいずれかの主題を含み、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信することは、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信して、ＯＳの識別子を引数として渡すことを含む。
【００５５】
例６は例１〜５のいずれかの主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも１つのＯＳ固有の機能を含み、複数のオペレーティングシステムの各ＯＳは、ＯＳを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
【００５６】
例７は例１〜６のいずれかの主題を含み、ＯＳは、第１のＯＳを含み、識別子は、第１のＯＳを他の複数のオペレーティングシステムからユニークに識別する第１の識別子を含み、ＯＳ固有の機能仕様の複数のＯＳ固有の機能は、第１のＯＳに対する複数のＯＳ固有の機能の第１のグループと、第１のＯＳとは異なるコンピューティングデバイスの第２のＯＳに対する複数のＯＳ固有の機能の第２のグループとを含み、複数のＯＳ固有の機能の第１のグループは、ＯＳ固有の機能仕様において第１の識別子により識別され、複数のＯＳ固有の機能の第２のグループは、ＯＳ固有の機能仕様において第１の識別子とは異なる第２の識別子により識別される。
【００５７】
例８は例１〜７のいずれかの主題を含み、コンピューティングデバイスのＯＳにより初期化され、仮想デバイスドライバロジックを初期化する前にＡＣＰＩサブシステムとインターフェース接続し、仮想デバイスドライバロジックとは異なるＡＣＰＩドライバロジックを更に備え、ＡＣＰＩサブシステムは、更に、（ｉ）デバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードし、（ｉｉ）デバイスデータをＡＣＰＩテーブルからＡＣＰＩドライバロジックへと送信し、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるＯＳ固有の機能仕様を示し、ＡＣＰＩドライバロジックによりＡＣＰＩテーブルからデバイスデータを受信したことに応答して、ＯＳは、仮想デバイスをエニュメレートする。
【００５８】
例９は例１〜８のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードすることは、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードすることを含む。
【００５９】
例１０は、コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法を含み、方法は、コンピューティングデバイスのオペレーティングシステム（ＯＳ）により仮想デバイスドライバを初期化してコンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスとインターフェース接続する段階と、仮想デバイスドライバにより、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に、ＯＳを他の複数のオペレーティングシステムからユニークに識別するＯＳの識別子を含む呼び出しを送信する段階と、ＡＣＰＩサブシステムによりＯＳ固有の機能仕様を分析して、ＯＳをユニークに識別する呼び出しからの識別子に基づいて、ＯＳに対する複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定する段階と、ＡＣＰＩサブシステムにより、識別子に基づいてＯＳに対して決定された１または複数のＯＳ固有の機能を実行する段階とを備え、ＡＣＰＩサブシステムは、仮想デバイスに関連付けられるＯＳ固有の機能仕様を含み、ＯＳ固有の機能仕様は、複数のＯＳ固有の機能を含む。
【００６０】
例１１は例１０の主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む。
【００６１】
例１２は例１０および１１のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００６２】
例１３は例１０〜１２いずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００６３】
例１４は例１０〜１３のいずれかの主題を含み、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信する段階は、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信する段階と、ＯＳの識別子を引数として渡す段階とを有する。
【００６４】
例１５は例１０〜１４のいずれかの主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも１つのＯＳ固有の機能を含み、複数のオペレーティングシステムの各ＯＳは、ＯＳを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
【００６５】
例１６は例１０〜１５のいずれかの主題を含み、ＯＳは、第１のＯＳを含み、識別子は、第１のＯＳを他の複数のオペレーティングシステムからユニークに識別する第１の識別子を含み、ＯＳ固有の機能仕様の複数のＯＳ固有の機能は、第１のＯＳに対する複数のＯＳ固有の機能の第１のグループと、第１のＯＳとは異なるコンピューティングデバイスの第２のＯＳに対する複数のＯＳ固有の機能の第２のグループとを含み、複数のＯＳ固有の機能の第１のグループは、ＯＳ固有の機能仕様において第１の識別子により識別され、複数のＯＳ固有の機能の第２のグループは、ＯＳ固有の機能仕様において第１の識別子とは異なる第２の識別子により識別される。
【００６６】
例１７は例１０〜１６のいずれかの主題を含み、コンピューティングデバイスのＡＣＰＩサブシステムによりデバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードする段階と、コンピューティングデバイスのＯＳによりＡＣＰＩドライバを初期化して、仮想デバイスドライバを初期化する前にＡＣＰＩサブシステムとインターフェース接続する段階と、ＡＣＰＩサブシステムによりＡＣＰＩテーブルからＡＣＰＩドライバへとデバイスデータを送信する段階と、ＡＣＰＩドライバがデバイスデータをＡＣＰＩテーブルから受信したことに応答して、コンピューティングデバイスのＯＳにより仮想デバイスをエニュメレートする段階とを更に備え、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるＯＳ固有の機能仕様を示し、ＡＣＰＩドライバは、仮想デバイスドライバとは異なる。
【００６７】
例１８は例１０〜１７のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードする段階は、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードする段階を有する。
【００６８】
例１９は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、プロセッサと、プロセッサにより実行されると、コンピューティングデバイスに例１０〜１８のいずれかの方法を実行させる複数の命令が格納されたメモリを含む。
【００６９】
例２０は、実行されることに応答してコンピューティングデバイスに例１０〜１８のいずれかの方法を実行させる、格納された複数の命令を含む１または複数の機械可読媒体を含む。
【００７０】
例２１は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、コンピューティングデバイスのオペレーティングシステム（ＯＳ）により仮想デバイスドライバを初期化してコンピューティングデバイスのアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスとインターフェース接続するための手段と、仮想デバイスドライバによりＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に、ＯＳを他の複数のオペレーティングシステムからユニークに識別するＯＳの識別子を含む呼び出しを送信するための手段と、ＡＣＰＩサブシステムによりＯＳ固有の機能仕様を分析して、ＯＳをユニークに識別する呼び出しからの識別子に基づいて、ＯＳに対する複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定するための手段と、ＡＣＰＩサブシステムにより、識別子に基づいてＯＳに対して決定された１または複数のＯＳ固有の機能を実行するための手段とを備え、ＡＣＰＩサブシステムは、仮想デバイスに関連付けられるＯＳ固有の機能仕様を含み、ＯＳ固有の機能仕様は、複数のＯＳ固有の機能を含む。
【００７１】
例２２は例２１の主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む。
【００７２】
例２３は例２１および２２のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００７３】
例２４は例２１〜２３のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、または（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００７４】
例２５は例２１〜２４のいずれかの主題を含み、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信するための手段は、ＡＣＰＩサブシステムにおいてＯＳ固有の機能仕様に呼び出しを送信するための手段と、ＯＳの識別子を引数として渡すための手段とを有する。
【００７５】
例２６は例２１〜２５のいずれかの主題を含み、仮想デバイスに関連付けられるＯＳ固有の機能仕様は、複数の異なるオペレーティングシステムの各々に関連付けられる少なくとも１つのＯＳ固有の機能を含み、複数のオペレーティングシステムの各ＯＳは、ＯＳを他の複数のオペレーティングシステムからユニークに識別する異なる識別子を有する。
【００７６】
例２７は例２１〜２６のいずれかの主題を含み、ＯＳは、第１のＯＳを含み、識別子は、第１のＯＳを他の複数のオペレーティングシステムからユニークに識別する第１の識別子を含み、ＯＳ固有の機能仕様の複数のＯＳ固有の機能は、第１のＯＳに対する複数のＯＳ固有の機能の第１のグループと、第１のＯＳとは異なるコンピューティングデバイスの第２のＯＳに対する複数のＯＳ固有の機能の第２のグループとを含み、複数のＯＳ固有の機能の第１のグループは、ＯＳ固有の機能仕様において第１の識別子により識別され、複数のＯＳ固有の機能の第２のグループは、ＯＳ固有の機能仕様において第１の識別子とは異なる第２の識別子により識別される。
【００７７】
例２８は例２１〜２７のいずれかの主題を含み、コンピューティングデバイスのＡＣＰＩサブシステムによりデバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードするための手段と、コンピューティングデバイスのＯＳによりＡＣＰＩドライバを初期化して、仮想デバイスドライバを初期化する前にＡＣＰＩサブシステムとインターフェース接続するための手段と、ＡＣＰＩサブシステムによりＡＣＰＩテーブルからＡＣＰＩドライバへとデバイスデータを送信するための手段と、ＡＣＰＩドライバがデバイスデータをＡＣＰＩテーブルから受信したことに応答して、コンピューティングデバイスのＯＳにより仮想デバイスをエニュメレートするための手段とを更に備え、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられるＯＳ固有の機能仕様を示し、ＡＣＰＩドライバは、仮想デバイスドライバとは異なる。
【００７８】
例２９は例２１〜２８のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードするための手段は、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードするための手段を有する。
【００７９】
例３０は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を有するアドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムであって、機能仕様は、ＡＣＰＩサブシステムにより実行される複数のオペレーティングシステム（ＯＳ）固有の機能を含み、複数のＯＳ固有の機能の各々のＯＳ固有の機能は、ＯＳ固有の機能をユニークに複数の他のＯＳ固有の機能から識別する機能識別子に関連付けられるＡＣＰＩサブシステムと、コンピューティングデバイスのＯＳにより初期化され、ＯＳに固有であり、（ｉ）ＡＣＰＩサブシステムの仮想デバイスとインターフェース接続し、（ｉｉ）ＡＣＰＩサブシステムにおいて機能仕様に対する呼び出しを送信するように構成された仮想デバイスドライバロジックであって、呼び出しは、ＯＳに対応する機能仕様のＯＳ固有の機能の複数の機能識別子のうちの１または複数を含む仮想デバイスドライバロジックとを備え、ＡＣＰＩサブシステムは、（ｉ）１または複数の機能識別子に基づいて機能仕様を分析して、複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定し、（ｉｉ）１または複数の機能識別子に基づいて決定された１または複数のＯＳ固有の機能を実行する。
【００８０】
例３１は例３０の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）を含む。
【００８１】
例３２は例３０および３１のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００８２】
例３３は例３０〜３２のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００８３】
例３４は例３０〜３３のいずれかの主題を含み、コンピューティングデバイスのＯＳにより初期化され、仮想デバイスドライバロジックを初期化する前にＡＣＰＩサブシステムとインターフェース接続し、仮想デバイスドライバロジックとは異なるＡＣＰＩドライバロジックを更に備え、ＡＣＰＩサブシステムは、更に、（ｉ）デバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードし、（ｉｉ）デバイスデータをＡＣＰＩテーブルからＡＣＰＩドライバロジックへと送信し、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示し、ＡＣＰＩドライバロジックによりＡＣＰＩテーブルからデバイスデータを受信したことに応答して、ＯＳは、仮想デバイスをエニュメレートする。
【００８４】
例３５は例３０〜３４のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードすることは、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードすることを含む。
【００８５】
例３６は、コンピューティングデバイス上で複数のプラットフォーム固有の機能を選択的に有効にするための方法を含み、方法は、コンピューティングデバイスのオペレーティングシステム（ＯＳ）によりＯＳに固有の仮想デバイスドライバを初期化する段階と、仮想デバイスドライバにより、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスとインターフェース接続する段階と、仮想デバイスドライバにより、ＡＣＰＩサブシステムにおいて機能仕様に対する呼び出しを送信する段階と、１または複数の機能識別子に基づいてＡＣＰＩサブシステムにより機能仕様を分析して、複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定する段階と、ＡＣＰＩサブシステムにより、１または複数の機能識別子に基づいて決定された１または複数のＯＳ固有の機能を実行する段階とを備え、ＡＣＰＩサブシステムは、仮想デバイスに関連付けられる機能仕様を含み、機能仕様は、ＡＣＰＩサブシステムにより実行されるべき複数のＯＳ固有の機能を含み、複数のＯＳ固有の機能の各々のＯＳ固有の機能は、ＯＳ固有の機能を複数の他のＯＳ固有の機能からユニークに識別する機能識別子に関連し、呼び出しは、ＯＳに対応する機能仕様の複数のＯＳ固有の機能の複数の機能識別子のうちの１または複数を含む。
【００８６】
例３７は例３６の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む。
【００８７】
例３８は例３６および３７のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００８８】
例３９は例３６〜３８のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００８９】
例４０は例３６〜３９のいずれかの主題を含み、コンピューティングデバイスのＯＳにより、仮想デバイスドライバを初期化する前にＡＣＰＩドライバを初期化して、ＡＣＰＩサブシステムとインターフェース接続する段階と、ＡＣＰＩサブシステムによりデバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードする段階と、ＡＣＰＩサブシステムによりＡＣＰＩテーブルからＡＣＰＩドライバへとデバイスデータを送信する段階と、コンピューティングデバイスのＯＳにより、ＡＣＰＩドライバにより受信されたＡＣＰＩテーブルからデバイスデータをエニュメレートする段階とを更に備え、ＡＣＰＩドライバは、仮想デバイスドライバと異なり、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示す。
【００９０】
例４１は例３６〜４０のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードする段階は、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードする段階を有する。
【００９１】
例４２は、複数のプラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、プロセッサと、プロセッサにより実行されると、コンピューティングデバイスに例３６〜４１のいずれかの方法を実行させる複数の命令が格納されたメモリを含む。
【００９２】
例４３は、実行されることに応答してコンピューティングデバイスが例３６〜４１のいずれかの方法を実行させる、格納された複数の命令を含む１または複数の機械可読媒体を含む。
【００９３】
例４４は、プラットフォーム固有の機能を選択的に有効にするコンピューティングデバイスを含み、コンピューティングデバイスは、コンピューティングデバイスのオペレーティングシステム（ＯＳ）によりＯＳに固有の仮想デバイスドライバを初期化するための手段と、仮想デバイスドライバにより、アドバンスト・コンフィギュレーション・アンド・パワー・インターフェイス（ＡＣＰＩ）サブシステムの仮想デバイスとインターフェース接続するための手段と、仮想デバイスドライバにより、ＡＣＰＩサブシステムにおいて機能仕様に対する呼び出しを送信するための手段と、ＡＣＰＩサブシステムにより１または複数の機能識別子に基づいて機能仕様を分析して、複数のＯＳ固有の機能のうちの１または複数のＯＳ固有の機能を決定するための手段と、ＡＣＰＩサブシステムにより、１または複数の機能識別子に基づいて決定された１または複数のＯＳ固有の機能を実行するための手段とを備え、ＡＣＰＩサブシステムは、仮想デバイスに関連付けられる機能仕様を含み、機能仕様は、ＡＣＰＩサブシステムにより実行されるべき複数のＯＳ固有の機能を含み、複数のＯＳ固有の機能の各々のＯＳ固有の機能は、ＯＳ固有の機能を複数の他のＯＳ固有の機能からユニークに識別する機能識別子に関連し、呼び出しは、ＯＳに対応する機能仕様の複数のＯＳ固有の機能の複数の機能識別子のうちの１または複数を含む。
【００９４】
例４５は例４４の主題を含み、仮想デバイスに関連付けられる機能仕様は、仮想デバイスに関連付けられるＡＣＰＩデバイス固有の方法（ＤＳＭ）または仮想デバイスに関連付けられるカスタムのＡＣＰＩ制御方法を含む。
【００９５】
例４６は例４４および４５のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳにＯＳ固有の機能を公開すること、および（ｉｉ）ＯＳにＯＳ固有のオブジェクトを公開することのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００９６】
例４７は例４４〜４６のいずれかの主題を含み、複数のＯＳ固有の機能のうちの少なくとも１つは、（ｉ）ＯＳ固有の機能をＯＳに対して非表示にすること、および（ｉｉ）ＯＳ固有のオブジェクトをＯＳに対して非表示にすることのうちの少なくとも１つを行うように構成されたＯＳ固有の機能を含む。
【００９７】
例４８は例４４〜４７のいずれかの主題を含み、コンピューティングデバイスのＯＳにより、仮想デバイスドライバを初期化する前にＡＣＰＩドライバを初期化して、ＡＣＰＩサブシステムとインターフェース接続するための手段と、ＡＣＰＩサブシステムによりデバイスデータをＡＣＰＩサブシステムに関連付けられるＡＣＰＩテーブルにロードするための手段と、ＡＣＰＩサブシステムによりＡＣＰＩテーブルからＡＣＰＩドライバへとデバイスデータを送信するための手段と、コンピューティングデバイスのＯＳにより、ＡＣＰＩドライバにより受信されたＡＣＰＩテーブルからデバイスデータをエニュメレートするための手段とを更に備え、ＡＣＰＩドライバは、仮想デバイスドライバと異なり、デバイスデータは、ＡＣＰＩサブシステムの仮想デバイスおよび仮想デバイスに関連付けられる機能仕様を示す。
【００９８】
例４９は例４４〜４８のいずれかの主題を含み、デバイスデータをＡＣＰＩテーブルにロードするための手段は、コンピューティングデバイスのＡＣＰＩベーシック入出力システム（ＢＩＯＳ）ファームウェアからＡＣＰＩテーブルへとデバイスデータをロードするための手段を有する。
【図１】
0006262870.tif 000002
【図２】
0006262870.tif 000003
【図３】
0006262870.tif 000004
【図４】
0006262870.tif 000005
【図５】
0006262870.tif 000006
【図６】
0006262870.tif 000007
【図７】
0006262870.tif 000008
【図８】
0006262870.tif 000009
【図９】
0006262870.tif 000010
【図１０】
0006262870.tif 000011