Problemas de compatibilidade de controladores induzidos pelo modo PAE
Problemas de compatibilidade de controladores com a prevenção de execução de dados (DEP,
data execution prevention) são normalmente induzidos pelo modo PAE.
Nota: a PAE só é necessária em computadores com processadores que suportem DEP aplicada por hardware.
Por si só, a DEP pode criar problemas de compatibilidade com controladores que gerem código ou utilizem outras técnicas para gerar código executável em tempo real. Muitos controladores com este comportamento teriam sido corrigidos, uma vez que a DEP está sempre activa para controladores que sejam carregados em versões de 64 bits do Windows. Por este motivo, não é garantido que todos os controladores tenham sido actualizados. No entanto, existem poucos controladores que utilizam estas técnicas, e não é expectável que a DEP, por si só, provoque muitos problemas de compatibilidade de controladores.
O principal objectivo do controlador consiste em executar o modo PAE em computadores de 32 bits. O modo PAE permite que os processadores enderecem mais do que 4 GB de memória. A principal diferença entre os esquemas de paginação de memória PAE e não-PAE reside no nível adicional de paginação necessário no modo PAE. O modo PAE requer 3 níveis de paginação em vez de 2.
Alguns controladores poderão não ser carregados se a PAE estiver activada, uma vez que o dispositivo poderá não conseguir efectuar o endereçamento de 64 bits ou os controladores poderão presumir que o modo PAE requer mais do que 4 GB de RAM. Tais controladores esperam receber sempre endereços de 64 bits quando em modo PAE, e que eles ou os respectivos dispositivos conseguem interpretar o endereço.
Outros controladores poderão ser carregados no modo PAE, mas provocam instabilidade do sistema modificando directamente entradas de tabela de páginas (PTEs,
page table entries) do sistema. Estes controladores esperam PTEs de 32 bits mas, em vez disso, recebem PTEs de 64 bits no modo PAE.
O maior problema de compatibilidade com a PAE envolve transferências de acesso directo à memória (DMA,
direct memory access) e atribuição de registos de mapas. Muitos dispositivos que suportam DMA, normalmente adaptadores de 32 bits, não conseguem efectuar endereçamento físico de 64 bits. Quando estes dispositivos funcionam no modo de 32 bits, conseguem endereçar todo o espaço de endereços físico. No modo PAE, podem existir dados num endereço físico superior a 4 GB. Para permitir que dispositivos com estas restrições funcionem neste cenário, a família Windows 2000 Server e versões posteriores do Windows fornecem dupla colocação em memória intermédia para a transacção DMA. A família Windows 2000 Server e versões posteriores do Windows fazem-no fornecendo um endereço de 32 bits indicado por um registo de mapa. O dispositivo pode efectuar a transacção DMA para o endereço de 32 bits e o kernel copia a memória para o endereço de 64 bits fornecido ao controlador. Quando o sistema funciona com a PAE desactivada, os controladores de dispositivos de 32 bits nunca necessitam que os respectivos registos de mapa sejam suportados por memória real. Isto significa que não é necessária a dupla colocação em memória intermédia, dado que todos os dispositivos estão contidos no espaço de endereçamento de 32 bits. Com base em testes de controladores de dispositivos de 32 bits em computadores baseados em processadores de 64 bits, é expectável que a maioria dos controladores com capacidades de DMA testados em clientes esperem registos de mapa ilimitados.
Para obter informações adicionais sobre alterações de funcionalidade no Windows XP SP2, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2mempr.mspx