Механизмы пула NX Opt-In

Чтобы перенести код драйвера режима ядра для Windows 8 из более ранних версий Windows, следует использовать тип NonPagedPoolNx пула памяти как лучшую практику. Вы можете использовать один из нескольких средств переноса, чтобы легко "согласиться" на использование типа пула NonPagedPoolNx по умолчанию.

Эти средства переноса используют один или оба из следующих методов, чтобы позволить драйверу использовать нестраничный пул NX:

  • Используйте инструкцию #define препроцессора для создания глобально определенного имени макроса.

  • Вызов встроенной функции из подпрограммы DriverEntry .

Для большинства кода драйвера в режиме ядра эти средства по переносу позволяют разработчикам обновлять драйверы с минимальными усилиями.

В этом разделе

Тема Описание

одно двоичное согласие: POOL_NX_OPTIN

Чтобы создать один двоичный файл драйвера, работающий как в Windows 8, так и в более ранних версиях Windows, используйте механизм POOL_NX_OPTIN согласия. Это помощь в переносе сторонних поставщиков оборудования, которые предоставляют один двоичный файл драйвера для поддержки нескольких версий Windows.

Множественный двоичный Opt-In: POOL_NX_OPTIN_AUTO

Если вы являетесь поставщиком оборудования, который предоставляет различные двоичные файлы драйверов для разных версий Windows, вы можете использовать механизм POOL_NX_OPTIN_AUTO согласия. Эта помощь по переносу создает отдельный двоичный файл драйвера для Windows 8 и для каждой более ранней версии Windows, которую поддерживает ваш драйвер.

Выборочный отказ: POOL_NX_OPTOUT

Вы можете глобально включить один из механизмов выбора пула без выполнения (NX) для набора исходных файлов драйверов, а затем переопределить этот механизм выбора для одного или нескольких выбранных исходных файлов с POOL_NX_OPTOUT. Это позволяет выбранным исходным файлам продолжать использовать исполняемую непагированную память. Вы можете использовать механизм отказа POOL_NX_OPTOUT с помощью POOL_NX_OPTIN или механизма POOL_NX_OPTIN_AUTO согласия.