Compartilhar via


Função de retorno de chamada POFXCALLBACKPLATFORMIDLEVETO (pepfx.h)

A rotina PlatformIdleVeto incrementa ou diminui a contagem de vetos para 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 informou 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 ocioso de plataforma válidos variam de 0 a N a 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

Se deve 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
STATUS_NOT_IMPLEMENTED
Indica que a rotina PlatformIdleVeto não está 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 lida com a notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES , cada estado ocioso da plataforma começa com uma contagem de veto de 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 após a contagem de todos os códigos de veto ter diminuído 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 a partir do Windows 10.
Plataforma de Destino Windows
Cabeçalho pepfx.h (inclua Pep_x.h)
IRQL PASSIVE_LEVEL

Confira também

PEP_KERNEL_INFORMATION_STRUCT_V3

PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES

PEP_NOTIFY_PPM_QUERY_VETO_REASONS