Usando o Utilitário de Sinalizadores Globais
O utilitário Sinalizadores Globais (gflags.exe) fornece um método simples de definir determinadas chaves dentro do registro do sistema, ajustar as configurações de kernel do sistema em execução e alterar as configurações de arquivos de imagem. Você pode definir essas chaves usando uma interface gráfica ou de linha de comando.
O utilitário Sinalizadores Globais pode ser encontrado no pacote ferramentas de suporte do Windows e no pacote Ferramentas de Depuração para Windows. Para obter informações sobre o último, consulte Depuração do Windows.
O utilitário Sinalizadores Globais também pode ser usado para configurar a opção Pool Especial do Verificador de Driver ou para designar o pool especial para uso em alocações de memória individuais.
Para alterar as configurações do Pool Especial, inicie o utilitário Sinalizadores Globais e selecione o botão de opção Registro do Sistema na seção Destino . A seção Marca de Pool Especial do Kernel da caixa de diálogo permite que determinadas opções especiais do pool sejam definidas.
Controlando o alinhamento da marca do pool
Selecione o botão Verificar opção Iniciar para fazer com que o alinhamento especial do pool se concentre na detecção de subexecutar. Selecione a opção Verificar Término para se concentrar na detecção de estouro. Esses botões controlam o alinhamento de todas as atribuições de pool especiais, seja feitas pelo Verificador de Driver ou por Sinalizadores Globais.
Usando pool especial por marca de pool ou tamanho de alocação
O pool especial pode ser usado para todas as alocações com uma determinada marca de pool. Para ativar esse recurso, insira a marca de pool na caixa de texto Marca de Pool .
O pool especial também pode ser usado para todas as alocações em um determinado intervalo de tamanhos. Embora esse uso de pool especial não envolva marcas de pool, esse recurso é ativado inserindo um número na caixa de texto Marca de Pool . Esse número deve ser menor que PAGE_SIZE.
Para um processador x86, PAGE_SIZE é 0x1000 e os intervalos de tamanho de alocação têm 8 bytes de comprimento. Para ativar o pool especial para todas as alocações com tamanhos nesse intervalo, insira um número igual ao máximo desse intervalo mais 8. (Esse número é sempre um múltiplo de 8.) A tabela a seguir ilustra estes valores:
Intervalo de tamanhos | Insira esse número na caixa de texto Marca de Pool |
---|---|
1 a 8 bytes |
16 (0x10) |
9 a 16 bytes |
24 (0x18) |
17 a 24 bytes |
32 (0x20) |
... |
... |
0xFE9 0xFF0 bytes |
0xFF8 |
Para um processador x64, PAGE_SIZE é 0x1000 e os intervalos de tamanho de alocação têm 16 bytes de comprimento. Para ativar o pool especial para todas as alocações com tamanhos nesse intervalo, insira um número igual ao máximo desse intervalo mais 16. (Esse número é sempre um múltiplo de 16.) A tabela a seguir ilustra estes valores:
Intervalo de tamanhos | Insira esse número na caixa de texto Marca de Pool |
---|---|
1 a 16 bytes |
32 (0x20) |
17 a 32 bytes |
48 (0x30) |
33 a 48 bytes |
64 (0x40) |
... |
... |
0xFD1 para 0xFE0 bytes |
0xFF0 |
Para um processador baseado em Itanium, PAGE_SIZE é 0x2000 e os intervalos de tamanho de alocação têm 16 bytes de comprimento. Para ativar o pool especial para todas as alocações com tamanhos nesse intervalo, insira um número igual ao máximo desse intervalo mais 16. (Esse número é sempre um múltiplo de 16.) A tabela a seguir ilustra estes valores:
Intervalo de tamanhos | Insira esse número na caixa de texto Marca de Pool |
---|---|
1 a 16 bytes |
32 (0x20) |
17 a 32 bytes |
48 (0x30) |
33 a 48 bytes |
64 (0x40) |
... |
... |
0x1FD1 para 0x1FE0 bytes |
0x1FF0 |
É melhor evitar o uso de marcas de pool inferiores a PAGE_SIZE. Por exemplo, se você colocar 0x30 nessa caixa de texto em um processador baseado em Itanium, o pool especial será usado para todas as alocações entre 17 e 32 bytes de tamanho e para alocações com a marca de pool 0x0030.
Nota Se o Verificador de Driver tiver habilitado o pool especial para um driver e o utilitário Sinalizadores Globais tiver habilitado o pool especial para uma marca de pool ou tamanho de alocação, o pool especial será usado para todas as alocações que atendem a qualquer um desses critérios (sujeito à disponibilidade do pool).
Consulte Pool Especial para obter detalhes completos sobre o uso do pool especial.