Multiple Binary Opt-In: POOL_NX_OPTIN_AUTO

If you are a hardware vendor who supplies different driver binaries for different versions of Windows, you can use the POOL_NX_OPTIN_AUTO opt-in mechanism. This porting aid builds a separate driver binary for Windows 8 and for each earlier version of Windows that your driver supports.

To use this opt-in mechanism, define POOL_NX_OPTIN_AUTO=1 for all source files that you want to opt-in. To do this, include the following preprocessor definition in the appropriate property page for your driver project:

C_DEFINES=$(C_DEFINES) -DPOOL_NX_OPTIN_AUTO=1

For most drivers, this definition is sufficient to enable the opt-in mechanism to create a different binary for each version of Windows that you support.

Implementation details

The POOL_NX_OPTIN_AUTO definition redefines the NonPagedPool constant name to NonPagedPoolNx. The redefined pool type is still a compile-time constant. The macro that converts instances of the NonPagedPool constant name to NonPagedPoolNx also converts instances of NonPagedPoolCacheAligned to NonPagedPoolNxCacheAligned.