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.
Por padrão, o vinculador atribui nomes como ".text" e ".data" às seções de código e dados de um arquivo de imagem de driver. Quando o driver é carregado, o gerenciador de E/S torna essas seções não paginadas. Uma seção não paginada é sempre residente na memória.
Um desenvolvedor de driver tem a opção de tornar as partes designadas de um driver pagináveis para que o Windows possa mover essas partes para o arquivo de paginação quando não estiverem em uso. Para tornar uma seção de código ou dados paginável, o desenvolvedor do driver atribui um nome que começa com "PAGE" à seção. O gerenciador de E/S verifica os nomes das seções quando carrega um driver. Se o nome de uma seção começar com "PAGE", o gerenciador de E/S tornará a seção paginável.
O código executado em IRQL >= DISPATCH_LEVEL deve ser residente na memória. Ou seja, esse código deve estar em um segmento não paginável ou em um segmento paginável que está bloqueado na memória. Se o código que está sendo executado no IRQL >= DISPATCH_LEVEL causa uma falha de página, ocorre uma verificação de bug. Os drivers podem usar a macro PAGED_CODE para verificar se as funções pagináveis são chamadas apenas em IRQLs apropriados.
Se uma seção de código ou dados puder ser paginada, o driver poderá bloquear a seção na memória chamando a rotina MmLockPagableCodeSection ou MmLockPagableDataSection . A seção permanece bloqueada até que o driver chame a rotina MmUnlockPagableImageSection para desbloqueá-la. Embora a seção paginável esteja bloqueada, ela se comporta da mesma forma que uma seção não paginada.
Para obter informações sobre como atribuir nomes a seções de código e dados, consulte MmLockPagableCodeSection e MmLockPagableDataSection.
Esta seção inclui os seguintes tópicos: