Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Adicionar suporte de endereçamento de 64 bits ao seu driver pode melhorar significativamente o desempenho geral do sistema. Isso é particularmente importante para drivers de dispositivo que executam acesso direto à memória (DMA). No Microsoft Windows de 64 bits, os drivers de dispositivo que executam DMA, mas não suportam endereçamento de 64 bits, são com buffer duplo, o que resulta em menor desempenho relativo.
Embora o buffer duplo geralmente tenha um impacto relativamente pequeno (pontos percentuais únicos) em sistemas de 8 GB, isso é suficiente para afetar tarefas intensivas de E/S, como a atividade do banco de dados. À medida que a quantidade de memória física aumenta, esse impacto negativo no desempenho também aumenta.
Para suportar DMA de 64 bits, os drivers devem observar as seguintes diretrizes:
Use estruturas PHYSICAL_ADDRESS para cálculos de endereços físicos.
Trate todo o endereço de 64 bits como um endereço físico válido. Por exemplo, os drivers não devem chamar MmGetPhysicalAddress num buffer bloqueado, descartar os 32 bits superiores e passar o endereço truncado a um adaptador de componente de 32 bits. Isso resulta em memória corrompida, E/S perdida e falha do sistema.
Use as rotinas de dispersão/coleta de alto desempenho (GetScatterGatherList e PutScatterGatherList) que foram adicionadas no Windows 2000.
Verifique o valor da variável de sistema global Mm64BitPhysicalAddress . Se for TRUE, o sistema suporta endereçamento físico de 64 bits.
Defina o membro Dma64BitAddresses da estrutura DEVICE_DESCRIPTION como TRUE para indicar que seu driver suporta endereços DMA de 64 bits.
As rotinas DMA no Windows de 32 bits estão prontas para 64 bits. Se o driver de dispositivo usa essas rotinas corretamente, o código DMA deve funcionar sem modificação no Windows de 64 bits.