Função de retorno de chamada POFXCALLBACKPLATFORMIDLEVETO (pep_x.h)
A rotina PlatformIdleVeto incrementa ou diminui a contagem de vetos de um código de veto para um estado ocioso da plataforma.
Sintaxe
POFXCALLBACKPLATFORMIDLEVETO Pofxcallbackplatformidleveto;
NTSTATUS Pofxcallbackplatformidleveto(
[in] POHANDLE ProcessorHandle,
[in] ULONG PlatformState,
[in] ULONG VetoReason,
[in] BOOLEAN Increment
)
{...}
Parâmetros
[in] ProcessorHandle
Um valor POHANDLE que representa o registro do processador (como um dispositivo) com a PoFx (estrutura de gerenciamento de energia ). O PEP (plug-in de extensão de plataforma) recebeu anteriormente esse identificador da PoFx durante a notificação de PEP_DPM_REGISTER_DEVICE que informava ao PEP que o processador havia sido registrado com PoFx.
[in] PlatformState
O índice do estado ocioso da plataforma cuja contagem de vetos está sendo incrementada ou decrementada. O PEP especificou anteriormente os estados ociosos da plataforma com suporte em resposta a uma notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES . Se os estados ociosos da plataforma N especificados pelo PEP, os índices de estado ociosos válidos da plataforma variam de 0 a N-1.
[in] VetoReason
Um código de veto definido por PEP que indica por que o estado ocioso da plataforma não pode ser inserido. O PEP especificou anteriormente o número de motivos de veto com suporte em resposta a uma notificação de PEP_NOTIFY_PPM_QUERY_VETO_REASONS . Se o PEP especificou motivos de veto M, os códigos de veto válidos variam de 1 a M.
[in] Increment
Seja para incrementar ou diminuir a contagem de vetos. Defina como TRUE para incrementar a contagem de vetos por esse motivo de veto ou como FALSE para diminuir a contagem.
Retornar valor
PlatformIdleVeto retornará STATUS_SUCCESS se a chamada incrementar ou diminuir com êxito a contagem de vetos. Os possíveis valores retornados por erro incluem o código de status a seguir.
Valor retornado | Descrição |
---|---|
|
Indica que a rotina PlatformIdleVeto não é implementada para esse processador. |
Comentários
Essa rotina é implementada pelo PoFx e é chamada pelo PEP. O membro PlatformIdleVeto da estrutura PEP_KERNEL_INFORMATION_STRUCT_V3 é um ponteiro para uma rotina PlatformIdleVeto .
Depois que o PEP manipula a notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES , cada estado ocioso da plataforma começa com uma contagem de veto zero para todos os códigos de veto. O PEP pode incrementar a contagem de vetos de um código de veto para impedir que o sistema operacional faça a transição da plataforma para esse estado ocioso. O PEP diminui a contagem de vetos quando o motivo do veto que fez com que a contagem fosse incrementada não está mais em vigor. Somente depois que a contagem de todos os códigos de veto tiver decremente reduzido para zero é que o sistema operacional tem permissão para fazer a transição da plataforma para esse estado ocioso.
Essa rotina deve ser chamada em IRQL = PASSIVE_LEVEL.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte começando com Windows 10. |
Plataforma de Destino | Windows |
Cabeçalho | pep_x.h (inclua Pep_x.h) |
IRQL | PASSIVE_LEVEL |
Confira também
PEP_KERNEL_INFORMATION_STRUCT_V3