NX 풀 Opt-In 메커니즘

커널 모드 드라이버 코드를 이전 버전의 Windows에서 Windows 8 포트하려면 NonPagedPoolNx 유형의 메모리 풀을 모범 사례로 사용해야 합니다. 여러 포팅 지원 중 하나를 사용하여 기본적으로 NonPagedPoolNx 풀 유형을 사용하기 위해 쉽게 "옵트인"할 수 있습니다.

이러한 포팅 지원은 다음 기술 중 하나 또는 둘 다를 사용하여 드라이버가 NX 비페이지 풀을 사용할 수 있도록 합니다.

  • #define 전처리기 문을 사용하여 전역적으로 정의된 매크로 이름을 만듭니다.

  • DriverEntry 루틴에서 인라인 함수를 호출합니다.

대부분의 커널 모드 드라이버 코드의 경우 이러한 포팅 보조 기능을 통해 개발자는 최소한의 노력으로 드라이버를 업데이트할 수 있습니다.

섹션 내용

항목 Description

단일 이진 옵트인: 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_OPTIN 또는 POOL_NX_OPTIN_AUTO 옵트인 메커니즘에서 POOL_NX_OPTOUT 옵트아웃 메커니즘을 사용할 수 있습니다.