Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A rotina KeSetBasePriorityThread define a prioridade de tempo de execução, em relação ao processo atual, para um determinado thread.
Sintaxe
LONG KeSetBasePriorityThread(
[in, out] PKTHREAD Thread,
[in] LONG Increment
);
Parâmetros
[in, out] Thread
Ponteiro para um objeto dispatcher do tipo KTHREAD.
[in] Increment
Especifica o valor a ser adicionado à prioridade base do processo para o de Thread. Esse valor pode ser positivo ou negativo.
O intervalo efetivo depende da classe de prioridade do processo:
- Para processos de classe de prioridade variável: a prioridade resultante deve permanecer dentro de 1 para (
LOW_REALTIME_PRIORITY- 1) - Para processos de classe de prioridade em tempo real: a prioridade resultante deve permanecer dentro
LOW_REALTIME_PRIORITYdeHIGH_PRIORITY
Se o valor absoluto de Incremento for maior ou igual a (HIGH_PRIORITY + 1) / 2, a saturação de prioridade ocorrerá, o que significa que alterações subsequentes na prioridade base do processo pai não afetarão a prioridade base desse thread.
Valor de retorno
KeSetBasePriorityThread retorna o incremento de prioridade base anterior do thread especificado. O incremento de prioridade base anterior é definido como a diferença entre a prioridade base antiga do thread especificado e a prioridade base do processo do thread.
Valores de retorno especiais:
Essa função retorna 0 quando é feita uma tentativa de alterar a prioridade de um thread ocioso (threads no processo inicial do kernel). A função não permite que as prioridades de thread ocioso sejam alteradas.
Para threads saturados, essa função retorna
((HIGH_PRIORITY + 1) / 2) * saturation_valueem vez da diferença de prioridade simples, em que saturation_value é +1 ou -1 dependendo se o thread foi saturado em alta ou baixa prioridade.
Observações
A nova prioridade base é computada adicionando o incremento fornecido, que pode ser um valor negativo, à prioridade base do processo do thread especificado. O valor resultante é armazenado como a prioridade base do thread especificado.
Os drivers que configuram threads dedicados ao dispositivo com atributos de prioridade variável podem chamar essa rotina para definir a prioridade desse thread em relação ao processo do sistema no qual o thread é criado.
A nova prioridade base é restrita à classe de prioridade do processo do thread especificado. Portanto, a prioridade base não tem permissão para atravessar de uma classe de prioridade variável para uma classe de prioridade em tempo real ou vice-versa.
KeSetBasePriorityThread é uma operação relativamente cara que deve ser usada com moderação. Evite chamadas frequentes para essa função, pois alterações de prioridade repetidas (como uma vez por minuto) podem afetar significativamente o desempenho do sistema e impedir que o agendador funcione com eficiência. Use essa função somente quando forem necessárias alterações de prioridade persistentes, não para ajustes temporários ou atualizações periódicas.
Requisitos
| Requisito | Valor |
|---|---|
| de cliente com suporte mínimo | Windows 2000 |
| da Plataforma de Destino | Universal |
| cabeçalho | ntddk.h (inclua Ntddk.h) |
| biblioteca | NtosKrnl.lib |
| de DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |