Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O sistema fornece vários objetos de evento padrão. Os drivers podem usar esses objetos de evento para serem notificados pelo sistema sempre que determinadas condições ocorrerem. A lista a seguir contém os objetos de evento padrão:
\KernelObjects\HighMemoryCondition
Esse evento é definido sempre que a quantidade de memória física gratuita excede uma quantidade definida pelo sistema. Os drivers podem esperar que esse evento seja definido como um sinal para fazer uma alocação agressiva de memória.
\KernelObjects\LowMemoryCondition
Esse evento é definido sempre que a quantidade de memória física livre fica abaixo de uma quantidade definida pelo sistema. Os drivers que alocaram grandes quantidades de memória podem esperar que esse evento seja definido como um sinal para liberar memória não usada.
Para o Microsoft Windows Server 2003 e versões posteriores do Windows, os drivers também podem usar os seguintes objetos de evento padrão adicionais:
\KernelObjects\HighPagedPoolCondition
Esse evento é definido sempre que a quantidade de pool de páginas gratuitas excede uma quantidade definida pelo sistema. Os drivers podem esperar que esse evento seja definido como um sinal para uma alocação intensiva de memória do pool paginado.
\KernelObjects\LowPagedPoolCondition
Esse evento é definido sempre que a quantidade de pool de páginas gratuitas fica abaixo de uma quantidade definida pelo sistema. Os drivers que alocaram grandes quantidades de memória podem esperar que esse evento seja definido como um sinal para liberar memória não usada do pool de páginas.
\KernelObjects\HighNonPagedPoolCondition
Esse evento é definido sempre que a quantidade de pool nãopagado gratuito excede um valor definido pelo sistema. Os drivers podem esperar que este evento seja definido como um sinal para alocar agressivamente memória do pool não paginada.
\KernelObjects\LowNonPagedPoolCondition
Esse evento é definido sempre que a quantidade de pool nãopagado gratuito fica abaixo de uma quantidade definida pelo sistema. Os drivers que alocaram grandes quantidades de memória podem esperar que esse evento seja ativado como um sinal para liberar memória não usada do pool de memória não paginada.
Para o Windows Vista e versões posteriores do Windows, os drivers também podem usar os seguintes objetos de evento padrão adicionais:
\KernelObjects\LowCommitCondition
Esse evento é definido quando a carga de confirmação do sistema operacional é baixa, em relação ao limite de confirmação atual. Em outras palavras, o uso de memória é baixo e muito espaço está disponível em arquivos de paginação ou memória física.
\KernelObjects\HighCommitCondition
Esse evento é definido quando a carga de confirmação do sistema operacional é alta, em relação ao limite de confirmação atual. Em outras palavras, o uso de memória é alto e muito pouco espaço está disponível em arquivos de paginação ou memória física, mas o sistema operacional pode ser capaz de aumentar o tamanho de seus arquivos de paginação.
\KernelObjects\MaximumCommitCondition
Esse evento é definido quando a carga de confirmação do sistema operacional se aproxima do limite máximo de confirmação. Em outras palavras, o uso de memória é muito alto, muito pouco espaço está disponível em arquivos de paginação ou memória física, e o sistema operacional não pode aumentar o tamanho de seus arquivos de paginação. (Um administrador do sistema sempre pode aumentar o tamanho ou o número de arquivos de paginação, sem reiniciar o computador, se houver recursos de armazenamento suficientes.)
Cada um desses eventos são eventos de notificação. Eles permanecem definidos enquanto a condição de gatilho permanecer verdadeira.
Para abrir um identificador para qualquer um desses eventos, use a rotina IoCreateNotificationEvent . Um driver que aguarda qualquer um desses eventos deve criar um thread dedicado para aguardar. O thread pode aguardar um ou mais desses eventos chamando KeWaitForSingleObject ou KeWaitForMultipleObjects.