articleみなさん、こんにちは。開発統括部の古内です。日本語に翻訳しました。ページからダウンロードできます。サスペンドについて触れられています。目的に応じてそれぞれご活用ください。サスペンドについての解説こんにちは。メカニズムが必要かつ重要である理由と、デバイスおよびドライバーでの正しい実装方法について説明します。このメカニズムの実装方法について触れます。サスペンドについて説明する前に、より一般的な概念である「実行時の電源管理」について確認しておきましょう。システムの消費電力を節約する方法には、システム全体を「スリープ」または「休止」などの低電力状態に移行する方法があります。このメカニズムでは、システムをオフにする必要があるため、この方法が有効なのはシステム全体が使用されていないときだけです。システム全体としては使用され、稼働状態にある場合でも、特定のコンポーネントはアクティブではない可能性もあります。このようなコンポーネントの状態を「アイドル状態」と言います。実行時の電源管理とは、アイドル状態のコンポーネントを、再び使用されるときまで低電力状態に移行しておくことを指します。該当するコンポーネントとしては、プロセッサ、メモリなどのハードウェアが考えられますが、ここでは、デバイスの実行時の電源管理のみを取り上げます。ドライバーでは、このメカニズムが大幅な消費電力の節約につながるため、デバイスの実行時の電源管理に積極的に取り組む必要があります。スタックには複数のドライバーが含まれているため、デバイスを低電力状態に移行したり、稼働状態に復帰させたりするときに、ドライバー間の調整が必要になります。フレームワークはいずれもこの調整のメカニズムを提供します。この電源ポリシー所有者は、デバイスがアイドル状態であることを検出し、デバイスを低電力状態に移行するプロセスを開始します。電源ポリシー所有者であるドライバーは、デバイスを使用しようとするユーザーの意図をどう認識し、デバイスをスリープ解除しているのでしょうか。これはデバイスの種類によって異なります。低電力状態になっている記憶域デバイスがあり、ユーザーはそのデバイスとの間でファイルを転送し合う必要があるとしましょう。要求を取得し、デバイスをスリープ解除する必要があると認識します。デバイスがマウスの場合、デバイスはある種の信号を送信して、スリープ解除処理を開始する必要があります。スリープ解除機能」と呼びます。マウスはこのような再開信号を生成する必要があるため、電源を完全にオフにすることはできません。デバイスでこの再開信号を生成する機能は、通常、プログラム可能です。スリープ解除機能を有効にするようにドライバーからデバイスに指示しておく必要があります。スリープ解除への対応」と呼ばれます。ドライバーに通知します。ドライバーに送信します。ドライバーに通知します。スタックは、そのすべての子が低電力状態になるまで、低電力状態に移行できません。子デバイスが稼働状態である場合、通常、その親デバイスも稼働状態である必要があるためです。デバイスがハブ経由で接続されている場合、転送が正常に完了するには、ハブが稼働状態である必要があります。スタックも低電力状態に移行できます。(ノードがアイドル状態であると仮定した場合)。それ以降も、ツリーのルートが低電力状態になるまで同様に処理されます。前に説明したスリープ解除メカニズムも、このノードの各レベルで繰り返されます。あるデバイスが稼働状態になるには、そのデバイスとルートとの間にあるすべてのノードが稼働状態になる必要があります。デバイスの詳細についての説明に進みましょう。デバイスは、最初に、そのデバイスが接続されているポートを中断状態にすることによって中断状態になります。レジスタを操作します。受信しないと中断状態になります。サスペンド」と呼ばれています。ツリーの一部のみを中断状態にすることを意味します。中止し、バス全体を中断状態にする「グローバルな」サスペンドとは対照的です。マウスの例を考えてみます。