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.
A função PsQueryProcessAvailableCpus consulta o conjunto de CPUs que estão disponíveis para um determinado processo ser executado.
Sintaxe
NTSTATUS PsQueryProcessAvailableCpus(
[in] PEPROCESS Process,
[in, out] PKAFFINITY_EX Affinity,
[in, optional] PULONG64 ObservedSequenceNumber,
[out] PULONG64 SequenceNumber
);
Parâmetros
[in] Process
Ponteiro para um processo (PEPROCESS).
[in, out] Affinity
Ponteiro para um objeto de afinidade estendida (PKAFFINITY_EX) que receberá o conjunto de CPUs disponíveis para o processo.
[in, optional] ObservedSequenceNumber
Opcionalmente, fornece um ponteiro para o número de sequência mais recente observado pelo chamador por meio de uma chamada anterior para essa rotina. Se esse número de sequência corresponder ao número de sequência atual, a rotina retornará STATUS_NO_WORK_DONE e não gravará no buffer de afinidade.
[out] SequenceNumber
Ponteiro para um buffer que receberá o número de sequência atual das CPUs disponíveis para o processo fornecido.
Valor de retorno
PsQueryProcessAvailableCpus retorna um dos seguintes valores NTSTATUS:
| Código de retorno | Descrição |
|---|---|
| STATUS_SUCCESS | A consulta foi concluída com êxito. |
| STATUS_INVALID_PARAMETER | Qualquer um dos buffers necessários é NULL. |
| STATUS_NO_WORK_DONE | O número de sequência especificado corresponde ao número da sequência atual e nenhuma consulta foi executada. |
| STATUS_BUFFER_TOO_SMALL | O buffer de afinidade fornecido é muito pequeno. |
Observações
Essa rotina pode ser chamada no IRQL de PASSIVE_LEVEL para DISPATCH_LEVEL.
O buffer de afinidade deve ser grande o suficiente para acomodar a contagem de grupos de processadores ativos. Use KeQueryActiveGroupCount para determinar o tamanho necessário.
O número de sequência permite que os chamadores otimizem consultas repetidas verificando se a disponibilidade da CPU foi alterada desde a última chamada.
Requisitos
| Requisito | Valor |
|---|---|
| cabeçalho | wdm.h |
| IRQL | PASSIVE_LEVEL to DISPATCH_LEVEL |