Поделиться через


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

Чтобы перенести код драйвера в режиме ядра в Windows 8 из более ранних версий Windows, рекомендуется использовать тип 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

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