Windows のバージョンごとに異なるドライバー バイナリを提供するハードウェア ベンダーの場合は、POOL_NX_OPTIN_AUTOオプトイン メカニズムを使用できます。 この移植支援は、Windows 8 と、ドライバーがサポートする Windows の以前のバージョンごとに、個別のドライバー バイナリを構築します。
このオプトイン メカニズムを使用するには、オプトインするすべてのソース ファイルに対して POOL_NX_OPTIN_AUTO=1 を定義します。 これを行うには、ドライバー プロジェクトの適切なプロパティ ページに次のプリプロセッサ定義を含めます。
C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN_AUTO=1
ほとんどのドライバーでは、サポートする Windows のバージョンごとに異なるバイナリを作成するオプトイン メカニズムを有効にするには、この定義で十分です。
実装の詳細
POOL_NX_OPTIN_AUTO定義は、定数名 nonPagedPool を再定義して、NonPagedPoolNx をします。 再定義されたプールの種類は、引き続きコンパイル時定数です。 NonPagedPool 定数名のインスタンスを NonPagedPoolNx に変換するマクロは、nonPagedPoolCacheAligned のインスタンス NonPagedPoolNxCacheAligned にも変換します。