NX プールのオプトイン メカニズム

Windows 8 よりも前の Windowsから Windows 8 にカーネル モード ドライバーのコードを移植するには、NonPagedPoolNx タイプのメモリ プールを使用することをお勧めします。 いくつかの移植支援のいずれかを使用して、NonPagedPoolNx タイプのプールの使用を容易に既定で "オプトイン" できます。

これらの移植支援では、次の手法のいずれかまたは両方を使用して、ドライバーで NX 非ページ プールを使用できるようにしています。

  • #define プリプロセッサ ステートメントを使用して、グローバルに定義したマクロ名を作成する。

  • DriverEntry ルーチンからインライン関数を呼び出す。

ほとんどのカーネル モード ドライバー コードで、このような移植支援を使用すれば最小限の作業でドライバーを更新できます。

このセクションの内容

裁判官 説明

単一バイナリ オプトイン: POOL_NX_OPTIN

Windows 8 とそれよりも前の Windows の両方で実行できる単一のドライバー バイナリをビルドするには POOL_NX_OPTIN オプトイン メカニズムを使用します。 これは、複数のバージョンの Windows を単一のドライバー バイナリでサポートしようとしているサード パーティ ハードウェア ベンダー向けの移植支援です。

複数のバイナリ オプトイン: POOL_NX_OPTIN_AUTO

Windows のバージョンごとにドライバー バイナリを提供するハードウェア ベンダーは、オプトイン メカニズム POOL_NX_OPTIN_AUTO を使用できます。 この移植支援は、Windows 8 のドライバー バイナリ、およびドライバーがサポートする Windows の以前のバージョンごとのドライバー バイナリを構築します。

選択的オプトアウト: POOL_NX_OPTOUT

No-Execute (NX) プールのオプトイン メカニズムのいずれかを、複数のドライバー ソース ファイルでグローバルに有効にしておき、そこから選択した 1 つ以上のソース ファイルに POOL_NX_OPTOUT を指定して、そのオプトイン メカニズムを無効にすることができます。 これにより、選択したソース ファイルでは、実行可能な非ページ メモリを引き続き使用できます。 オプトアウト メカニズム POOL_NX_OPTOUT は、オプトイン メカニズム POOL_NX_OPTIN または POOL_NX_OPTIN_AUTO と併用できます。