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.
Você pode tornar todo ou parte do seu driver paginável. O código do driver de paginação pode reduzir o tamanho da imagem de carga do driver, liberando espaço do sistema para outros usos. É mais prático para controladores de dispositivos usados esporadicamente, como modens e CD-ROMs, ou para partes de controladores que raramente são utilizadas.
O código do driver que executa qualquer um dos seguintes itens deve ser residente na memória. Ou seja, esse código deve estar em uma seção não paginada ou em uma seção paginada que está bloqueada na memória quando o código é executado.
Funciona em ou acima de IRQL = DISPATCH_LEVEL.
Adquire fechaduras giratórias.
Chama qualquer uma das rotinas de suporte a objetos do kernel, como KeReleaseMutex ou KeReleaseSemaphore, nas quais o parâmetro Wait é definido como TRUE. Se o kernel for invocado com Wait definido como TRUE, a chamada retornará com IRQL no nível de despacho.
O código do driver deve estar em execução no IRQL < DISPATCH_LEVEL quando o código faz qualquer coisa que possa causar uma falha de página. O código pode causar uma falha de página se ele fizer qualquer um dos seguintes:
Acessa o pool paginado que não está bloqueado na memória.
Chama uma rotina paginável.
Acessa buffers de usuário desbloqueados no contexto do thread do usuário.
Normalmente, deve fazer com que uma secção seja paginada se a quantidade total de todo o código paginável (ou dados) for de pelo menos 4 kilobytes (KB). Sempre que possível, deves isolar o código (ou dados) que é puramente paginado numa seção separada do código (ou dados) que às vezes pode ser paginado, mas às vezes deve ser bloqueado. Por exemplo, a combinação de código puramente paginável e código bloqueado sob demanda faz com que mais espaço do sistema seja bloqueado para a seção combinada do que o necessário. No entanto, se um driver tiver menos de 4 KB de código (ou dados) possivelmente paginável, você poderá combinar esse código (ou dados) com código (ou dados) bloqueado sob demanda em uma seção, economizando espaço no sistema.