情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

フレームワークベースのドライバーでのページング可能コードの作成

ページング可能コードは、コードが使用されなくなったときに、コンピューターのページング ファイルに書き込むことのできるコードです。ドライバーの一部をページング可能にして、読み込みイメージと最初の読み込み時間を削減し、コンピューターの限られた非ページング メモリ プールを使用するドライバーのコード量を削減できます。

ドライバーにページング可能なコードまたはデータが適しているかどうかを判断するには、次の手順を実行します。

  1. ドライバー内のページング可能なセクションを特定します。

    ページング可能なセクションは、そのセクションが必要になるまでメモリに読み込まれません。ドライバー内にページング可能なセクションを作成する方法については、「ドライバーをページング可能にする」(英語の可能性あり) を参照してください。

  2. ページングされたドライバー コードによって、低電力状態からすばやくスリープ解除するコンピューターの能力が低下しないことを確認します。

    ドライバーが提供するデバイス オブジェクト コールバック関数はすべて、IRQL = PASSIVE_LEVEL で呼び出されます。これにより、コードをページング可能にすることができます (「ドライバーをページング可能にする」(英語の可能性あり) を参照)。

    ただし、デバイスが低電力状態から脱して作業 (D0) 状態に戻るときにフレームワークがコールバック関数を呼び出す場合は、コールバック関数のコードをページング可能にしないでください。

    このようなコードをページング可能にすると、コンピューターがスリープ状態に入る前にコードがページング ファイルに書き込まれる場合があります。そのため、ページング ディスクの電力が回復するまでコードを再読み込みできなくなり (したがって、デバイスを完全な動作状態にできない)、コンピューターのスリープ解除に時間がかかります。

    そのため、「デバイスが作業状態に戻る場合」のトピックに示されているコールバック関数はページング可能にしないでください。

  3. 電力の切り替え中に、ドライバーがそのドライバー外部のページング可能データ (ファイル、レジストリ、ページ プールなど) にアクセスする必要があるかどうかを確認します。

    電力の切り替え中にドライバーがページング可能データにアクセスする機能を有効および無効にする方法については、WdfDeviceInitSetPowerPageable のトピックおよび WdfDeviceInitSetPowerNotPageable のトピックを参照してください。

    ドライバーがページング不可状態にあるかどうかを確認する方法については、WdfDevStateIsNP のトピックを参照してください。

 

 

コミュニティの追加

表示:
© 2014 Microsoft