Partilhar via


Exemplo 14: Configuração do Pool Especial

A partir do Windows Vista, você pode configurar o recurso Pool Especial como uma configuração de sinalizador no kernel ou como uma definição no registo. Se você configurá-lo como uma configuração de sinalizador do kernel (tempo de execução), não será necessário reiniciar o computador para tornar a alteração efetiva. Em versões anteriores do Windows, Pool Especial está disponível apenas como uma configuração do Registro.

Além disso, a partir do Windows Vista, você pode definir e configurar o recurso Pool Especial a partir da linha de comando. Em versões anteriores do Windows, você pode definir e configurar o recurso Pool Especial somente na caixa de diálogo Sinalizadores Globais.

Solicite a tag Pool by pool especial sem reiniciar

O comando a seguir solicita pool especial para todas as alocações com a tag pool de Tag1. Essa configuração entra em vigor imediatamente, mas é perdida se você desligar ou reiniciar o Windows.

Este comando usa o parâmetro /k para especificar uma configuração de sinalizador do kernel (tempo de execução) e a abreviação +spp para definir uma solicitação de pool especial.

gflags /k +spp Tag1

Gflags responde imprimindo:

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Observe que a solicitação de alocação de pool especial não é uma configuração de sinalizador do kernel e não é refletida no valor das configurações do kernel.

Além disso, uma solicitação de alocação de pool especial não altera o valor da configuração de saturação (0x1) ou subexecução (0x0) para pool especial. Para alterar de sobrecargas, que é o padrão, para subcargas, utilize a caixa de diálogo Gflags. Para obter informações, consulte Detetando excessos e défices.

Não é possível exibir a tag pool na linha de comando. Para verificar se a tag pool é uma configuração do kernel, use a caixa de diálogo Gflags.

Solicitar pool especial com etiqueta de pool no registo

O seguinte comando solicita pool especial para todas as alocações com a tag pool de Tag1. Como essa configuração é armazenada no Registro, você deve reiniciar o computador para torná-la efetiva, mas ela permanece efetiva até que você a altere.

Este comando usa o parâmetro /r para especificar uma configuração do Registro e a abreviação +spp para definir uma solicitação de pool especial.

gflags /r +spp Tag1

Gflags responde imprimindo:

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Observe que a solicitação de alocação de pool especial não é uma configuração de sinalizador do Registro e não é refletida no valor das configurações do Registro.

Além disso, uma solicitação de alocação de pool especial não altera o valor da configuração de saturação (0x1) ou subexecução (0x0) para pool especial. Para mudar de erros de execução, o padrão, para subexecuções, use a caixa de diálogo Gflags. Para obter informações, consulte Detetando excedências e subutilizações.

Para verificar se o valor foi adicionado ao Registro, use Reg ou Regedit para exibir o valor da entrada PoolTag na chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.

Por exemplo:

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x31676154

Solicite Pool Especial por tamanho sem reiniciar

O comando a seguir solicita pool especial para alocações de 1 a 8 bytes em um computador x86 com uma PAGE_SIZE de 0x1000 e granularidade de alocação de 8 bytes.

Este comando usa o parâmetro /k para especificar uma configuração de sinalizador do kernel (tempo de execução) e a abreviação +spp para definir uma solicitação de pool especial. O valor de tamanho é precedido por 0x para indicar que é um tamanho e não uma etiqueta de pool.

O valor, 0x10, é calculado adicionando a granularidade de alocação (8 bytes) ao maior tamanho no intervalo (8 bytes) para um total de 16 bytes (0x10). Para obter ajuda para determinar o valor correto a ser inserido, consulte "Selecionando um tamanho de alocação" em Special Pool.

gflags /k +spp 0x10

Gflags responde imprimindo:

Special Pool set to 0x10
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Novamente, a solicitação de alocação de pool especial não é uma configuração de sinalizador do kernel e não é refletida no valor das configurações do kernel.

Além disso, uma solicitação de alocação de pool especial não altera o valor da configuração de sobrecarga (0x1) ou subcarga (0x0) para o pool especial. Para mudar de excedentes, que é o padrão, para subexecuções, use a caixa de diálogo Gflags. Para obter informações, consulte Detetando saturações e subexecuções.

Solicitar Pool Especial por tamanho no registro

O comando a seguir solicita pool especial para alocações de 1024 a 1040 bytes em um computador x64 com uma PAGE_SIZE de 0x1000 e granularidade de alocação de 16 bytes.

Este comando usa o parâmetro /r para especificar uma configuração do Registro em todo o sistema e a abreviação +spp para definir uma solicitação de pool especial. O valor size é precedido por 0x para indicar que é um tamanho e não uma tag de pool.

O valor, 0x420, é calculado adicionando a granularidade de alocação (16 bytes) ao maior tamanho no intervalo (1040 bytes) para um total de 1056 bytes (0x420). Para obter ajuda para determinar o valor correto a ser inserido, consulte "Selecionando um tamanho de alocação" em Special Pool.

gflags /r +spp 0x420

Gflags responde imprimindo:

Special Pool set to 0x420
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Novamente, a solicitação de alocação de pool especial não é uma configuração de sinalizador do Registro e não é refletida no valor das configurações do Registro.

Além disso, uma solicitação de alocação de pool especial não altera o valor da configuração de saturação (0x1) ou subexecução (0x0) para pool especial. Para mudar de excedentes, o padrão, para subutilizações, use a caixa de diálogo Gflags. Para obter informações, consulte Deteção de excessos e défices.

Para verificar se o valor foi adicionado ao Registro, use Reg ou Regedit para exibir o valor da entrada PoolTag na chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management.

Por exemplo:

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x420

Cancelar um pedido especial de piscina

O comando a seguir cancela uma solicitação para Pool Especial como uma definição de sinalizador de tempo de execução do kernel. O comando é o mesmo para uma solicitação por tag de pool ou por tamanho.

gflags /k -spp

O comando a seguir cancela uma solicitação para Special Pool como uma configuração do registo. O comando é o mesmo para uma solicitação por tag de pool ou por tamanho.

gflags /r -spp

Quando o comando é bem-sucedido, o Gflags responde imprimindo:

Special Pool value has been deleted.