Condividi tramite


No-Execute (NX) Pool non a pagina

Come procedura consigliata, i driver per Windows 8 e versioni successive di Windows devono allocare la maggior parte o tutta la memoria non in pagina dal pool non eseguito (NX). Assegnando memoria dal pool non a pagine di NX, un driver in modalità kernel migliora la sicurezza impedendo l'esecuzione di istruzioni dannose in questa memoria.

A partire da Windows 8, i driver in modalità kernel possono allocare memoria da un pool di memoria non con pagine NX. Questo pool viene gestito da un allocatore di memoria in modalità kernel che funziona in modo analogo all'heap allocatore in modalità utente Win32. La memoria in questo pool è NX e non paginata. Le architetture del processore x86, x64 e Arm consentono di designare le pagine di memoria come NX per impedire l'esecuzione delle istruzioni in queste pagine. In genere, un driver in modalità kernel usa la memoria allocata dal pool non a pagina per archiviare i dati e non richiede la possibilità di eseguire istruzioni in questa memoria.

Supporto per i driver legacy

In Windows 7 e versioni precedenti di Windows, tutte le memoria allocate dal pool non a pagina sono eseguibili. Per incoraggiare la conversione di questi driver all'uso del pool non di pagina NX in Windows 8 e versioni successive di Windows, Microsoft offre diversi meccanismi di consenso esplicito per consentire agli sviluppatori di aggiornare i driver con un minimo sforzo. Per altre informazioni, vedere Meccanismi di Opt-In pool di NX.

Per la compatibilità con le versioni precedenti, i file binari driver eseguiti in Windows 7 e versioni precedenti di Windows e che allocano memoria dal pool non con pagine eseguibili, verranno eseguiti in Windows 8 e versioni successive di Windows senza modifiche. Tuttavia, questi driver non sfruttano la sicurezza migliorata del pool non di pagina NX.