標準イベント オブジェクト
システムはいくつかの標準イベントオブジェクトを提供します。 ドライバーはこれらのイベントオブジェクトを使用して、特定の条件が発生するたびにシステムから通知を受けることができます。 に標準イベントオブジェクトを示します:
\KernelObjects\HighMemoryCondition
このイベントは、空き物理メモリ量がシステムで定義された量を超えるたびに設定されます。 ドライバーは、積極的にメモリを割り当てるシグナルとして、このイベントが設定されるのを待つことができます。
\KernelObjects\LowMemoryCondition
このイベントは、空き物理メモリ量がシステムで定義された量を下回るたびに設定されます。 大量のメモリを割り当てているドライバーは、未使用メモリを解放するシグナルとして、このイベントが設定されるのを待つことができます。
Microsoft Windows Server 2003 およびそれ以降のバージョンの Windows では、ドライバーは以下の追加標準イベントオブジェクトも使用できます:
\KernelObjects\HighPagedPoolCondition
このイベントは、空きページプール量がシステムで定義された量を超えるたびに設定されます。 ドライバーは、ページドプールから積極的にメモリを割り当てるシグナルとして、このイベントが設定されるのを待つことができます。
\KernelObjects\LowPagedPoolCondition
このイベントは、空きページドプール量がシステムで定義された量を下回るたびに設定されます。 大量のメモリを割り当てているドライバーは、ページドプールから未使用メモリを解放するシグナルとして、このイベントが設定されるのを待つことができます。
\KernelObjects\HighNonPagedPoolCondition
このイベントは、非ページプールの空き容量がシステムで定義された容量を超えるたびに設定されます。 ドライバーは、非ページプールから積極的にメモリを割り当てるシグナルとして、このイベントが設定されるのを待つことができます。
\KernelObjects\LowNonPagedPoolCondition
このイベントは、非ページプールの空き容量がシステムで定義された容量を下回るたびに設定されます。 大量のメモリを割り当てているドライバーは、非ページプールから未使用メモリを解放するシグナルとして、このイベントが設定されるのを待つことができます。
Windows Vista 以降のバージョンの Windows では、ドライバーは以下の追加標準イベントオブジェ クトを使用することもできます:
\KernelObjects\LowCommitCondition
このイベントは、オペレーティングシステムの commit charge が、 current commit limitに対して低いときに設定されます。 言い換えると、メモリ使用量が少なく、物理メモリまたはページングファイルに多くの空き領域があります。
\KernelObjects\HighCommitCondition
このイベントは、オペレーティングシステムのコミットチャージが現在のコミット制限に対して高いときに設定されます。 言い換えると、メモリ使用量が多く、物理メモリまたはページングファイルで使用できる領域がほとんどないが、オペレーティングシステムはページングファイルのサイズを増やすことができる可能性があります。
\KernelObjects\MaximumCommitCondition
このイベントは、オペレーティング システムのコミットチャージが maximum commit limitに近いときに設定されます。 言い換えると、メモリ使用量が非常に高く、物理メモリまたはページングファイルで使用できる領域が非常に少なく、オペレーティングシステムはページングファイルのサイズを増やすことができません。 (システム管理者は、十分なストレージリソースが存在すれば、コンピュータを再起動することなく、いつでもページングファイルのサイズや数を増やすことができます。)
これらの各イベントは通知イベントです。 これらのイベントは、トリガー条件がtrueである限り、設定され続けます。
これらイベントのハンドルを開くには、 IoCreateNotificationEvent ルーチンを使用します。 これらイベントのいずれかを待機するドライバーは、待機を行う専用のスレッドを作成する必要があります。 スレッドは、 KeWaitForSingleObject または KeWaitForMultipleObjectsのいずれかを呼び出すことで、これらのイベントの1つ以上を待機できます。