システム スタートアップのパフォーマンス向上
コンピューター ユーザーが最も頻繁に要求する機能の 1 つは、電源オフ、スタンバイ、休止状態からの高速起動時間です。 Windows では、起動時間を短縮するため、次のようなさまざまな手法を使用します。
起動操作、プロセス、およびサービスの一覧から、起動が完了するまで延期できるサービスを削除します。
以前のシステム起動時にこれらのページを読み込む要求のパターンに従って、メモリ ページをプリフェッチします。
デバイスの初期化と、オペレーティング システムの読み込みに必要なディスク I/O 操作と重複します。
デバイスの初期化を、順番ではなく並列で実行できるようにします。
カーネル モード ドライバーは、起動プロセスのパフォーマンスを向上させるため、次の手順を実行する必要があります。
コンピューターが電源オフ状態から起動すると (コールド スタート)、デバイス ドライバーは、デバイスを初期化し、起動が完了するまで他のすべてのデバイス操作を延期するために必要な操作のみ実行する必要があります。 ドライバーの初期化コードを、デバイスを使用する準備を行うために必要な操作に制限します。
コンピューターがスタンバイ状態または休止状態から起動すると (ウォーム スタート)、起動が完了する前に初期化する必要があるドライバーは、優先度の高いワーカー スレッドと重要なキュー作業項目を使用して、必要な小さなタスクをオフロードする必要があります。 そうしないと、関連のないスレッドによってドライバー スレッドがプロセッサ時間不足になり、起動が遅れる可能性があります。
スタンバイまたは休止状態からのウォーム スタート中、ドライバーの DPC ルーチン、または DISPATCH_LEVEL で実行される初期化コードは、他のドライバーの実行をブロックする長時間の実行を回避する必要があります。 詳しくは、「低電力状態からの起動時のプロセッサ リソースの共有」をご覧ください。
スタンバイまたは休止状態からのウォーム スタート時、機能デバイス ドライバーは、すぐに S0 設定電源 IRP を完了し、D0 設定電源 IRP を要求する必要があります。 ドライバーが S0 設定電源 IRP をすぐに完了すると、ドライバーがバックグラウンド タスクとしてデバイスを再初期化している間に、オペレーティング システムの起動が完了する可能性があります。 詳しくは、「低電力状態からの高速起動」をご覧ください。
デバイス ドライバーは、特に電源オフ状態からのコールド スタート時、スピン ロックを短時間以上保持しないようにする必要があります。 それ以外の場合、デバイスの初期化を並列で実行できません。
ここでは、次のトピックについて説明します。