Compartilhar via


Notificações do DPM (gerenciamento de energia do dispositivo)

Cada notificação de DPM (gerenciamento de energia do dispositivo) recebida pela rotina de retorno de chamada AcceptDeviceNotification da PEP é acompanhada por um parâmetro Notification que indica o tipo de notificação e um parâmetro Data que aponta para uma estrutura de dados que contém as informações do tipo de notificação especificado.

Nessa chamada, o parâmetro Notification é definido como um valor constante PEP_DPM_XXX que indica o tipo de notificação. O parâmetro Data aponta para um tipo de estrutura PEP_XXX associado a esse tipo de notificação.

ID de notificação Valor Estrutura associada
PEP_DPM_PREPARE_DEVICE 0x01 PEP_PREPARE_DEVICE
PEP_DPM_ABANDON_DEVICE 0x02 PEP_ABANDON_DEVICE
PEP_DPM_REGISTER_DEVICE 0x03 PEP_REGISTER_DEVICE_V2
PEP_DPM_UNREGISTER_DEVICE 0x04 PEP_UNREGISTER_DEVICE
PEP_DPM_DEVICE_POWER_STATE 0x05 PEP_DEVICE_POWER_STATE
PEP_DPM_COMPONENT_ACTIVE 0x07 PEP_COMPONENT_ACTIVE
PEP_DPM_WORK 0x0D PEP_WORK
PEP_DPM_POWER_CONTROL_REQUEST 0x0E PEP_POWER_CONTROL_REQUEST
PEP_DPM_POWER_CONTROL_COMPLETE 0x0F PEP_POWER_CONTROL_COMPLETE
PEP_DPM_SYSTEM_LATENCY_UPDATE 0x10 PEP_SYSTEM_LATENCY
PEP_DPM_DEVICE_STARTED 0x12 PEP_DEVICE_STARTED
PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE 0x13 PEP_NOTIFY_COMPONENT_IDLE_STATE
PEP_DPM_REGISTER_DEBUGGER 0x15 PEP_REGISTER_DEBUGGER
PEP_DPM_LOW_POWER_EPOCH 0x18 PEP_LOW_POWER_EPOCH
PEP_DPM_REGISTER_CRASHDUMP_DEVICE 0x19 PEP_REGISTER_CRASHDUMP_DEVICE
PEP_DPM_DEVICE_IDLE_CONSTRAINTS 0x1A PEP_DEVICE_PLATFORM_CONSTRAINTS
PEP_DPM_COMPONENT_IDLE_CONSTRAINTS 0x1B PEP_COMPONENT_PLATFORM_CONSTRAINTS
PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES 0x1C PEP_QUERY_COMPONENT_PERF_CAPABILITIES
PEP_DPM_QUERY_COMPONENT_PERF_SET 0x1D PEP_QUERY_COMPONENT_PERF_SET
PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME 0x1E PEP_QUERY_COMPONENT_PERF_SET_NAME
PEP_DPM_QUERY_COMPONENT_PERF_STATES 0x1F PEP_QUERY_COMPONENT_PERF_STATES
PEP_DPM_REGISTER_COMPONENT_PERF_STATES 0x20 PEP_REGISTER_COMPONENT_PERF_STATES
PEP_DPM_REQUEST_COMPONENT_PERF_STATE 0x21 PEP_REQUEST_COMPONENT_PERF_STATE
PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE 0x22 PEP_QUERY_CURRENT_COMPONENT_PERF_STATE
PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS 0x23 PEP_DEBUGGER_TRANSITION_REQUIREMENTS
PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT 0x24 PEP_QUERY_SOC_SUBSYSTEM_COUNT
PEP_DPM_QUERY_SOC_SUBSYSTEM 0x25 PEP_QUERY_SOC_SUBSYSTEM
PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING 0x26 PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING
PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME 0x27 PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME
PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 0x28 PEP_QUERY_SOC_SUBSYSTEM_METADATA

IDs de notificação

As IDs de notificação do DPM a seguir são usadas pela rotina de retorno de chamada AcceptDeviceNotification.

PEP_DPM_PREPARE_DEVICE

Notificação (PEP_DPM_PREPARE_DEVICE)

O valor PEP_DPM_PREPARE_DEVICE.

Dados (PEP_DPM_PREPARE_DEVICE)

Um ponteiro para uma estrutura PEP_PREPARE_DEVICE . Informa ao PEP que possui o dispositivo especificado para configurar o dispositivo para operar no estado de energia do dispositivo D0 (funcionando).

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP antes que a pilha de driver de um dispositivo seja iniciada pela primeira vez pelo sistema operacional. Essa notificação permite que o PEP ative todos os recursos externos de energia ou relógio necessários para operar o dispositivo.

Para enviar uma notificação PEP_DPM_PREPARE_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_PREPARE_DEVICE e o parâmetro Data aponta para uma estrutura PEP_PREPARE_DEVICE. Na entrada, o membro DeviceId dessa estrutura é uma cadeia de caracteres de identificação do dispositivo que identifica exclusivamente um dispositivo. Antes de retornar, o PEP define o membro DeviceAccepted dessa estrutura como TRUE para reivindicar a propriedade do dispositivo ou como FALSE para indicar que ele não possui o dispositivo.

O PEP que possui o gerenciamento de energia de um dispositivo é responsável por gerenciar recursos de energia e relógio externos ao dispositivo e que são necessários para operar o dispositivo. Esse PEP habilita o sinal de relógio e a energia para o dispositivo em resposta a uma notificação de PEP_DPM_PREPARE_DEVICE e remove o sinal do relógio e a energia do dispositivo em resposta a uma notificação de PEP_DPM_ABANDON_DEVICE.

A tabela a seguir mostra as pré-condições que estão em vigor quando esse sistema operacional envia uma notificação de PEP_DPM_PREPARE_DEVICE para o PEP e as pós-condições que devem estar em vigor depois que o PEP manipula essa notificação para um dispositivo que ele possui.

Pré-condições Pós-condições
O dispositivo pode estar em qualquer estado de energia. Se o PEP reivindicar a propriedade do dispositivo, o dispositivo e todos os seus componentes deverão ser ativados e os relógios para o dispositivo deverão ser desfeitos.
O PEP pode receber PEP_DPM_PREPARE_DEVICE notificações para vários dispositivos à medida que o power manager tenta encontrar proprietários de PEP para esses dispositivos. O PEP deve definir o membro DeviceAccepted da estrutura PEP_PREPARE_DEVICE como FALSE para todos os dispositivos que o PEP não possui.

Nenhuma PEP_DPM_PREPARE_DEVICE notificações são enviadas para dispositivos principais.

Para uma notificação de PEP_DPM_PREPARE_DEVICE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_ABANDON_DEVICE

Notificação (PEP_DPM_ABANDON_DEVICE)

O valor PEP_DPM_ABANDON_DEVICE.

Dados (PEP_DPM_ABANDON_DEVICE)

Um ponteiro para uma estrutura PEP_ABANDON_DEVICE . Informa ao PEP que o dispositivo especificado não está mais sendo usado pelo sistema operacional.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP depois que o sistema operacional remove a pilha de driver de um dispositivo. Essa notificação permite que o PEP desative todos os recursos externos de energia ou relógio usados para operar o dispositivo e remova esse dispositivo de processos futuros de tomada de decisão. Se o dispositivo precisar ser iniciado novamente mais tarde, o PEP receberá primeiro uma notificação de PEP_DPM_PREPARE_DEVICE.

Para enviar uma notificação PEP_DPM_ABANDON_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_ABANDON_DEVICE e o parâmetro Data aponta para uma estrutura PEP_ABANDON_DEVICE. Na entrada, o membro DeviceId dessa estrutura é uma cadeia de caracteres de identificação do dispositivo que identifica exclusivamente um dispositivo. Antes de retornar, o PEP define o membro DeviceAccepted dessa estrutura como TRUE para reivindicar a propriedade do dispositivo ou como FALSE para indicar que ele não possui o dispositivo.

O PEP que possui o gerenciamento de energia de um dispositivo é responsável por gerenciar recursos de energia e relógio externos ao dispositivo e que são necessários para operar o dispositivo.

A tabela a seguir mostra as pré-condições que estão em vigor quando esse sistema operacional envia uma notificação de PEP_DPM_ABANDON_DEVICE para o PEP e as pós-condições que devem estar em vigor depois que o PEP manipula essa notificação para um dispositivo que ele possui.

Pré-condições Pós-condições
O PEP recebeu uma notificação de PEP_DPM_PREPARE_DEVICE para o dispositivo e aceitou a propriedade do dispositivo.
Se o PEP recebeu uma notificação de PEP_DPM_REGISTER_DEVICE para o dispositivo e aceitou o registro do dispositivo, ele recebeu posteriormente uma notificação de PEP_DPM_UNREGISTER_DEVICE para o dispositivo.
Todos os recursos que foram alocados em resposta à notificação de PEP_DPM_PREPARE_DEVICE devem ser liberados.
Para uma notificação de PEP_DPM_PREPARE_DEVICE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_DEVICE

Notificação (PEP_DPM_REGISTER_DEVICE)

O valor PEP_DPM_REGISTER_DEVICE.

Dados (PEP_DPM_REGISTER_DEVICE)

Um ponteiro para uma estrutura PEP_REGISTER_DEVICE_V2 .

Informa ao PEP que a pilha de driver do dispositivo especificado foi registrada com a PoFx (estrutura de gerenciamento de energia) do Windows.

O PoFx envia essa notificação quando a pilha de driver do dispositivo chama a rotina PoFxRegisterDevice para registrar o dispositivo. Essa notificação permite que o PEP copie as informações de registro do dispositivo para o armazenamento interno do PEP para referência posterior.

Para enviar uma notificação PEP_DPM_REGISTER_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_REGISTER_DEVICE e o parâmetro Data aponta para uma estrutura PEP_REGISTER_DEVICE_V2 que contém o identificador de kernel do dispositivo e outras informações de registro. Na entrada, o membro DeviceId dessa estrutura é uma cadeia de caracteres de identificação do dispositivo que identifica exclusivamente um dispositivo. Antes de retornar, o PEP define o membro DeviceAccepted dessa estrutura como TRUE para reivindicar a propriedade do dispositivo ou como FALSE para indicar que ele não possui o dispositivo. Para obter informações sobre os outros membros dessa estrutura, consulte PEP_REGISTER_DEVICE_V2.

A tabela a seguir mostra as pré-condições que estão em vigor quando esse sistema operacional envia uma notificação de PEP_DPM_REGISTER_DEVICE para o PEP e as pós-condições que devem estar em vigor depois que o PEP manipula essa notificação para um dispositivo que ele possui.

Pré-condições Pós-condições
O PEP recebeu uma notificação de PEP_DPM_PREPARE_DEVICE para um dispositivo que ele possui. O PEP está pronto para receber outras notificações de DPM (gerenciamento de energia do dispositivo) associadas a esse dispositivo.

Para uma notificação de PEP_DPM_REGISTER_DEVICE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_UNREGISTER_DEVICE

Notificação (PEP_DPM_UNREGISTER_DEVICE)

O valor PEP_DPM_UNREGISTER_DEVICE.

Dados (PEP_DPM_UNREGISTER_DEVICE)

Um ponteiro para uma estrutura PEP_UNREGISTER_DEVICE .

Informa ao PEP que possui o dispositivo especificado que a pilha de driver do dispositivo retirou seu registro da PoFx (estrutura de gerenciamento de energia) do Windows.

A PoFx envia essa notificação para informar ao PEP que todas as informações de registro armazenadas pelo PEP para o dispositivo durante a notificação de PEP_DPM_REGISTER_DEVICE anterior não são mais válidas. Em resposta, o PEP pode limpo qualquer estado interno usado para o gerenciamento de energia desse dispositivo.

Para enviar uma notificação de PEP_DPM_UNREGISTER_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_UNREGISTER_DEVICE e o parâmetro Data aponta para uma estrutura PEP_UNREGISTER_DEVICE. Essa estrutura contém o identificador que o PEP criou em resposta à notificação de PEP_DPM_REGISTER_DEVICE anterior para o dispositivo.

A tabela a seguir mostra as pré-condições que estão em vigor quando esse sistema operacional envia uma notificação de PEP_DPM_UNREGISTER_DEVICE para o PEP e as pós-condições que devem estar em vigor depois que o PEP manipula essa notificação para um dispositivo que ele possui.

Pré-condições Pós-condições
Se o PEP recebeu uma notificação de PEP_DPM_REGISTER_DEVICE para o dispositivo e aceitou o registro do dispositivo.
O PEP pode receber quaisquer notificações de DPM (gerenciamento de energia do dispositivo) associadas a este dispositivo.
O PEP pode relatar "trabalho" associado a este dispositivo.
O PEP não pode mais receber notificações de DPM (gerenciamento de energia do dispositivo) associadas a esse dispositivo, exceto por PEP_DPM_ABANDON_DEVICE.
O PEP não pode relatar "trabalho" associado a este dispositivo.

Para uma notificação de PEP_DPM_UNREGISTER_DEVICE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_DEVICE_POWER_STATE

Notificação (PEP_DPM_DEVICE_POWER_STATE)

O valor PEP_DPM_DEVICE_POWER_STATE.

Dados (PEP_DPM_DEVICE_POWER_STATE)

Um ponteiro para uma estrutura PEP_DEVICE_POWER_STATE .

Enviado para o PEP sempre que a pilha de driver do dispositivo solicita uma alteração para um novo estado de energia Dx ou uma transição solicitada anteriormente para um estado de energia Dx é concluída.

Depois que o PEP chama a rotina RequestWorker para solicitar um item de trabalho, o PoFx responde enviando ao PEP uma notificação de PEP_DPM_DEVICE_POWER_STATE. No entanto, essa notificação não é enviada até que os recursos (ou seja, o thread de trabalho) necessários para processar o item de trabalho estejam disponíveis. Dessa forma, a PoFx garante que a solicitação de trabalho que o PEP passa para PoFx durante a notificação nunca poderá falhar devido à falta de recursos.

Para enviar uma notificação PEP_DPM_DEVICE_POWER_STATE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_DEVICE_POWER_STATE e o parâmetro Data aponta para uma estrutura PEP_DEVICE_POWER_STATE. Na entrada, o PEP deve assumir que o conteúdo dessa estrutura não é inicializado. Para lidar com essa notificação, o PEP deve definir o membro WorkInformation para apontar para uma estrutura de PEP_WORK_INFORMATION alocada por PEP que descreva o trabalho que está sendo solicitado. Além disso, o PEP deve definir o membro NeedWork da estrutura PEP_WORK como TRUE para confirmar que o PEP lidou com a notificação de PEP_DEVICE_POWER_STATE e que o membro WorkInformation aponta para uma estrutura de PEP_WORK_INFORMATION válida. Se o PEP não conseguir lidar com a notificação ou não conseguir alocar a estrutura PEP_WORK_INFORMATION, o PEP deverá definir o membro WorkInformation como NULL e definir o membro NeedWork como FALSE.

Para uma notificação PEP_DPM_DEVICE_POWER_STATE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_COMPONENT_ACTIVE

Notificação (PEP_DPM_COMPONENT_ACTIVE)

O valor PEP_DPM_COMPONENT_ACTIVE.

Dados (PEP_DPM_COMPONENT_ACTIVE)

Um ponteiro para uma estrutura PEP_COMPONENT_ACTIVE que identifica o componente e que indica se esse componente está fazendo uma transição para a condição ativa ou para a condição ociosa.

Informa ao PEP que um componente precisa fazer uma transição da condição ociosa para a condição ativa ou vice-versa.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação quando uma transição está pendente para a condição ativa ou para a condição ociosa.

Para enviar uma notificação de PEP_DPM_COMPONENT_ACTIVE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_COMPONENT_ACTIVE e o parâmetro Data aponta para uma estrutura PEP_COMPONENT_ACTIVE.

Um componente acessível está na condição ativa. Um componente inacessível está na condição ociosa. Um componente que está na condição ativa está sempre no estado de energia do componente F0. O componente não pode deixar F0 até entrar na condição ociosa. Um componente que está na condição ociosa pode estar em F0 ou em um estado fx de baixa potência. A condição ativa/ociosa de um componente é o único meio confiável para um driver determinar se um componente está acessível. Um componente que está em F0, mas também está na condição ociosa, pode estar prestes a mudar para um estado fx de baixa potência.

Quando um componente ativo está pronto para entrar na condição ociosa, a transição ocorre imediatamente. Durante a manipulação da notificação de PEP_DPM_COMPONENT_ACTIVE, o PEP pode, por exemplo, solicitar uma transição de F0 para um estado fx de baixa potência para o componente.

Se um componente estiver em um estado fx de baixa potência quando uma notificação de PEP_DPM_COMPONENT_ACTIVE solicitar uma transição da condição ociosa para a condição ativa, o PEP deverá primeiro alternar o componente para F0 antes que o componente possa entrar na condição ativa. O PEP pode precisar concluir a preparação do componente para a transição para a condição ativa de forma assíncrona, depois de retornar do retorno de chamada AcceptDeviceNotification para a notificação de PEP_DPM_COMPONENT_ACTIVE. Depois que o componente estiver totalmente configurado para operar na condição ativa, o PEP deverá chamar a rotina RequestWorker e, em seguida, manipular a notificação de PEP_DPM_WORK resultante definindo WorkType = PepWorkActiveComplete na estrutura PEP_WORK_INFORMATION.

Se o PEP receber uma notificação PEP_DPM_COMPONENT_ACTIVE para um componente que está em F0 e já estiver totalmente configurado para operar na condição ativa, o PEP poderá concluir o tratamento dessa notificação de forma síncrona. Se houver suporte para o tratamento de "caminho rápido" da notificação, o membro WorkInformation da estrutura PEP_COMPONENT_ACTIVE dessa notificação conterá um ponteiro para uma estrutura PEP_WORK_INFORMATION e o PEP poderá definir o membro WorkType dessa estrutura como PepWorkActiveComplete para concluir a transição. No entanto, se WorkInformation = NULL, nenhum "caminho rápido" estiver disponível e o PEP deverá concluir a transição de forma assíncrona chamando RequestWorker, conforme descrito no parágrafo anterior.

Para obter mais informações sobre as condições ativas e ociosas, consulte Gerenciamento de energia em nível de componente.

Para uma notificação de PEP_DPM_COMPONENT_ACTIVE, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_WORK

Notificação (PEP_DPM_WORK)

O valor PEP_DPM_WORK.

Dados (PEP_DPM_WORK)

Um ponteiro para uma estrutura PEP_WORK .

Enviado ao PEP uma vez cada vez que o PEP chama a rotina RequestWorker para solicitar um item de trabalho da PoFx (estrutura de gerenciamento de energia) do Windows.

Depois que o PEP chama a rotina RequestWorker para solicitar um item de trabalho, o PoFx responde enviando ao PEP uma notificação de PEP_DPM_WORK. No entanto, essa notificação não é enviada até que os recursos (ou seja, o thread de trabalho) necessários para processar o item de trabalho estejam disponíveis. Dessa forma, a PoFx garante que a solicitação de trabalho que o PEP passa para PoFx durante a notificação nunca poderá falhar devido à falta de recursos.

Para enviar uma notificação PEP_DPM_WORK, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_WORK e o parâmetro Data aponta para uma estrutura PEP_WORK. Na entrada, o PEP deve assumir que o conteúdo dessa estrutura não é inicializado. Para lidar com essa notificação, o PEP deve definir o membro WorkInformation para apontar para uma estrutura de PEP_WORK_INFORMATION alocada por PEP que descreva o trabalho que está sendo solicitado. Além disso, o PEP deve definir o membro NeedWork da estrutura PEP_WORK como TRUE para confirmar que o PEP lidou com a notificação de PEP_DPM_WORK e que o membro WorkInformation aponta para uma estrutura de PEP_WORK_INFORMATION válida. Se o PEP não conseguir lidar com a notificação ou não conseguir alocar a estrutura PEP_WORK_INFORMATION, o PEP deverá definir o membro WorkInformation como NULL e definir o membro NeedWork como FALSE.

Para uma notificação de PEP_DPM_WORK, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_POWER_CONTROL_REQUEST

Notificação (PEP_DPM_POWER_CONTROL_REQUEST)

O valor PEP_DPM_POWER_CONTROL_REQUEST.

Dados (PEP_DPM_POWER_CONTROL_REQUEST)

Um ponteiro para uma estrutura PEP_POWER_CONTROL_REQUEST .

Informa ao PEP que um driver chamou a API PoFxPowerControl para enviar um código de controle diretamente para o PEP.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP quando um driver chama a API PoFxPowerControl para enviar um código de controle diretamente para o PEP. O ponteiro de dados de notificação nesse caso aponta para a estrutura PEP_POWER_CONTROL_REQUEST

As solicitações de controle de energia e sua semântica são definidas entre o gravador PEP e o proprietário da classe de dispositivo. Normalmente, essa interface é para comunicação específica da classe de dispositivo que não é capturada na estrutura de gerenciamento de energia generalizada. Por exemplo, o controlador UART pode comunicar informações de taxa de baud ao PEP para modificar alguns trilhos/divisores de relógio de plataforma e essa comunicação provavelmente aproveitaria uma solicitação de controle de energia.

! [OBSERVAÇÃO] O PEP só pode solicitar o envio de um código de controle para o dispositivo depois de receber uma notificação de PEP_DPM_DEVICE_STARTED ou PEP_DPM_POWER_CONTROL_REQUEST notificação.

Para uma notificação PEP_DPM_POWER_CONTROL_REQUEST, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_POWER_CONTROL_COMPLETE

Notificação (PEP_DPM_POWER_CONTROL_COMPLETE)

O valor PEP_DPM_POWER_CONTROL_COMPLETE.

Dados (PEP_DPM_POWER_CONTROL_COMPLETE)

Um ponteiro para uma estrutura PEP_POWER_CONTROL_COMPLETE .

Informa ao PEP que um driver concluiu uma solicitação de controle de energia que foi emitida anteriormente pelo PEP

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP quando um driver conclui uma solicitação de controle de energia emitida anteriormente pelo PEP.

! [OBSERVAÇÃO] O PEP poderá ignorar essa notificação se não emitir nenhuma solicitação de controle de energia.

Para uma notificação de PEP_DPM_POWER_CONTROL_COMPLETE, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_SYSTEM_LATENCY_UPDATE

Notificação (PEP_DPM_SYSTEM_LATENCY_UPDATE)

O valor PEP_DPM_SYSTEM_LATENCY_UPDATE.

Dados (PEP_DPM_SYSTEM_LATENCY_UPDATE)

Um ponteiro para uma estrutura PEP_SYSTEM_LATENCY .

Informa ao PEP que o sistema operacional atualizou a tolerância geral à latência do sistema.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação quando o sistema operacional atualiza a tolerância geral de latência do sistema.

Em versões anteriores do PoFx, essa notificação era usada pelo PEP para a seleção de estado ocioso de processador e plataforma. Com as interfaces PEP mais recentes, o processo de seleção é totalmente tratado pelo sistema operacional e, como tal, essa notificação não é mais útil. Ele está incluído aqui para integridade e o PEP deve ignorá-lo.

Para enviar uma notificação de PEP_DPM_SYSTEM_LATENCY_UPDATE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Para essa notificação, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_DEVICE_STARTED

Notificação (PEP_DPM_DEVICE_STARTED)

O valor PEP_DPM_DEVICE_STARTED.

Dados (PEP_DPM_DEVICE_STARTED)

Um ponteiro para uma estrutura PEP_DEVICE_STARTED .

Informa ao PEP que o dispositivo foi iniciado para que ele esteja disponível para receber transações de controle de energia.

As pilhas de dispositivos se registram no sistema operacional para gerenciamento de energia em runtime em um processo de duas etapas. O driver primeiro chama PoFxRegisterDevice para fornecer informações sobre o número de componentes, seus estados ociosos e atributos correspondentes. Em resposta a essa chamada, o PEP recebe uma notificação de PEP_DPM_REGISTER_DEVICE.

Depois que o registro for bem-sucedido, o driver terá a oportunidade de inicializar seus componentes (ou seja, definir requisitos ativos de latência de atualização, atualizar a residência ociosa esperada etc.). Depois que o driver concluir todas as tarefas de inicialização, ele notificará o power manager chamando PoFxStartDevicePowerManagement. Em resposta, o PEP receberá uma notificação de PEP_DPM_DEVICE_STARTED. Neste ponto, o dispositivo é considerado totalmente habilitado para gerenciamento de energia de runtime.

Como resultado, o PEP não pode emitir nenhuma solicitação de controle de energia para o driver, a menos que tenha recebido primeiro uma notificação de PEP_DPM_DEVICE_STARTED ou uma notificação de PEP_DPM_POWER_CONTROL_REQUEST.

Observação

O PEP poderá ignorar essa notificação se não emitir nenhuma solicitação de controle de energia.

Para uma notificação de PEP_DPM_DEVICE_STARTED, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE

Notificação (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

O valor PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE.

Dados (PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE)

Um ponteiro para uma estrutura PEP_NOTIFY_COMPONENT_IDLE_STATE .

Enviado para o PEP quando o sistema operacional emite uma transição de estado ocioso para um determinado componente.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação quando o sistema operacional emite uma transição de estado ocioso para um determinado componente.

Importante

O PEP deve lidar com essa notificação.

Para cada transição de estado ocioso, o PEP é notificado antes e depois que o driver é notificado. O PEP distingue entre pré e pós-notificações examinando o membro DriverNotified da estrutura PEP_NOTIFY_COMPONENT_IDLE_STATE. Para uma pós-notificação, o membro DriverNotified será TRUE.

As pré-notificações geralmente são usadas durante a transição para F0. Nesse caso, o PEP pode precisar reabilitar recursos de relógio ou energia, de modo que, quando o driver lida com a notificação F0, o hardware esteja disponível. Assim, as pós-notificações geralmente são usadas durante a transição de F0 para um estado ocioso mais profundo. Depois que um driver manipular a notificação de estado ocioso, o PEP poderá desativar com segurança os recursos de relógio e energia.

Lidar com uma transição de estado ocioso para um determinado componente poderá exigir processamento assíncrono se a operação levar um período significativo de tempo ou o IRQL for muito alto para concluir a transição de forma síncrona. Como resultado, o PEP pode concluir essa notificação de forma síncrona ou assíncrona definindo o membro Completed como TRUE ou FALSE, respectivamente.

Se a notificação for concluída de forma assíncrona, o PEP notificará o sistema operacional após a conclusão solicitando um trabalho (consulte RequestWorker) e preenchendo a estrutura de informações de trabalho fornecida na notificação de PEP_DPM_WORK resultante usando um tipo de trabalho de PepWorkCompleteIdleState.

Para enviar uma notificação de PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Essa rotina é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_REGISTER_DEBUGGER

Notificação (PEP_DPM_REGISTER_DEBUGGER)

O valor PEP_DPM_REGISTER_DEBUGGER.

Dados (PEP_DPM_REGISTER_DEBUGGER)

Um ponteiro para uma estrutura PEP_REGISTER_DEBUGGER .

Informa ao PEP que um dispositivo registrado pode ser usado como uma porta de depuração.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para notificar o PEP de que um dispositivo registrado pode ser usado como uma porta de depuração.

Para uma notificação PEP_DPM_REGISTER_DEBUGGER, a rotina AcceptDeviceNotification é chamada em IRQL <= DISPATCH_LEVEL.

PEP_DPM_LOW_POWER_EPOCH

Notificação (PEP_DPM_LOW_POWER_EPOCH)

O valor PEP_DPM_LOW_POWER_EPOCH.

Dados (PEP_DPM_LOW_POWER_EPOCH)

Um ponteiro para uma estrutura PEP_LOW_POWER_EPOCH .

Essa notificação foi preterida.

PEP_DPM_REGISTER_CRASHDUMP_DEVICE

Notificação (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

O valor PEP_DPM_REGISTER_CRASHDUMP_DEVICE.

Dados (PEP_DPM_REGISTER_CRASHDUMP_DEVICE)

Um ponteiro para uma estrutura PEP_REGISTER_CRASHDUMP_DEVICE .

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação quando um dispositivo é registrado como um manipulador de memória com falha.

A capacidade de gerar um despejo de memória (crashdump) quando o sistema encontra um erro fatal é inestimável para determinar a causa da falha. O Windows, por padrão, gerará um carimbo de falha quando o sistema encontrar uma verificação de bugs. Nesse contexto, o sistema está em um ambiente operacional muito restrito com interrupções desabilitadas e o IRQL do sistema em HIGH_LEVEL.

Como os dispositivos envolvidos na gravação de um carimbo de falha no disco (ou seja, controlador de armazenamento, controlador PCI etc. ) podem ser desligados no momento da falha, o sistema operacional deve chamar o PEP para ligar o dispositivo. Dessa forma, o sistema operacional solicita um retorno de chamada (PowerOnDumpDeviceCallback) do PEP para cada dispositivo na pilha de crashdump e invoca o retorno de chamada ao gerar o arquivo de despejo.

Dado o ambiente restrito no momento da falha, o retorno de chamada fornecido pelo PEP não deve acessar o código paginado, bloquear eventos ou invocar qualquer código que possa fazer o mesmo. Além disso, o processo de ativação de todos os recursos necessários não pode depender de interrupções. Como resultado, o PEP pode ter que reverter à sondagem caso precise aguardar a habilitação de vários recursos. Se o PEP não puder ligar o dispositivo sob essas restrições, ele não deverá manipular a notificação ou não fornecer uma rotina de retorno de chamada.

Para enviar uma notificação de PEP_DPM_REGISTER_CRASHDUMP_DEVICE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Para essa notificação, a rotina AcceptDeviceNotification é chamada em IRQL <= HIGH_LEVEL.

PEP_DPM_DEVICE_IDLE_CONSTRAINTS

Notificação (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

O valor PEP_DPM_DEVICE_IDLE_CONSTRAINTS.

Dados (PEP_DPM_DEVICE_IDLE_CONSTRAINTS)

Um ponteiro para uma estrutura PEP_DEVICE_PLATFORM_CONSTRAINTS . Enviado ao PEP para consultar dependências entre estados D do dispositivo e estados ociosos da plataforma.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação ao PEP para consultar dependências entre estados D do dispositivo e estados ociosos da plataforma. O PEP usa essa notificação para retornar o estado D mais leve em que o dispositivo ainda pode estar e inserir cada estado ocioso da plataforma. O sistema operacional garantirá que o dispositivo esteja no estado D mínimo antes de entrar em um estado ocioso de plataforma associado. Se um estado ocioso da plataforma não depender de esse dispositivo estar em qualquer estado D, o PEP deverá especificar um estado D mínimo de PowerDeviceD0. Se nenhum estado ocioso da plataforma depender que esse dispositivo esteja em um estado D específico, essa notificação poderá ser ignorada.

Essa notificação é enviada para cada dispositivo depois que o PEP recebe a notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Para enviar uma notificação de PEP_DPM_DEVICE_IDLE_CONSTRAINTS, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_DEVICE_IDLE_CONSTRAINTS e o parâmetro Data aponta para uma estrutura PEP_DEVICE_PLATFORM_CONSTRAINTS.

Para uma notificação de PEP_DPM_DEVICE_IDLE_CONSTRAINTS, a rotina AcceptDeviceNotification é sempre chamada em IRQL = DISPATCH_LEVEL.

PEP_DPM_COMPONENT_IDLE_CONSTRAINTS

Notificação (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

O valor PEP_DPM_COMPONENT_IDLE_CONSTRAINTS.

Dados (PEP_DPM_COMPONENT_IDLE_CONSTRAINTS)

Um ponteiro para uma estrutura PEP_COMPONENT_PLATFORM_CONSTRAINTS .

Enviado ao PEP para consultar dependências entre os estados F do componente e os estados ociosos da plataforma.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação ao PEP para consultar dependências entre os estados F do componente e os estados ociosos da plataforma. O PEP usa essa notificação para retornar o estado F mais leve em que o componente ainda pode estar e entrar em cada estado ocioso da plataforma. O sistema operacional garantirá que o componente esteja no estado F mínimo antes de entrar em um estado ocioso de plataforma associado. Se um estado ocioso da plataforma não depender de esse componente estar em nenhum estado F, o PEP deverá especificar um estado F mínimo de 0. Se nenhum estado ocioso da plataforma depender desse componente estar em um estado F específico, essa notificação poderá ser ignorada.

Restrições ociosas do dispositivo mais profundas que D0 são mais restritas do que os estados ociosos do componente para componentes no dispositivo. Para um determinado índice de estado ocioso da plataforma, se o dispositivo especificou uma restrição ociosa do dispositivo, a restrição ociosa do componente correspondente para todos os componentes associados ao dispositivo será ignorada.

Essa notificação é enviada para cada componente em cada dispositivo depois que o PEP recebe uma notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATES.

Para enviar uma notificação de PEP_DPM_COMPONENT_IDLE_CONSTRAINTS, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. A rotina AcceptDeviceNotification é sempre chamada em IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES

Notificação (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

O valor PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES.

Dados (PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES)

Um ponteiro para uma estrutura PEP_QUERY_COMPONENT_PERF_CAPABILITIES .

Informa ao PEP que ele está sendo consultado quanto ao número de conjuntos de estado de desempenho (P-state) definidos para um componente.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES e o parâmetro Data aponta para uma estrutura PEP_QUERY_COMPONENT_PERF_CAPABILITIES.

Para uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET

Notificação (PEP_DPM_QUERY_COMPONENT_PERF_SET)

O valor PEP_DPM_QUERY_COMPONENT_PERF_SET.

Dados (PEP_DPM_QUERY_COMPONENT_PERF_SET)

Um ponteiro para uma estrutura PEP_QUERY_COMPONENT_PERF_SET .

Informa ao PEP que ele está sendo consultado para obter informações sobre um conjunto de valores de estado de desempenho (conjunto de estado P) para um componente.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_SET, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_QUERY_COMPONENT_PERF_SET e o parâmetro Data aponta para uma estrutura PEP_QUERY_COMPONENT_PERF_SET.

Para uma notificação PEP_DPM_QUERY_COMPONENT_PERF_SET, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME

Notificação (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

O valor PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME.

Dados (OPEP_DPM_QUERY_COMPONENT_PERF_SET_NAME)

Um ponteiro para uma estrutura PEP_QUERY_COMPONENT_PERF_SET_NAME .

Informa ao PEP que ele está sendo consultado para obter informações sobre um conjunto de valores de estado de desempenho (conjunto de estado P) para um componente.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME e o parâmetro Data aponta para uma estrutura PEP_QUERY_COMPONENT_PERF_SET_NAME.

Para uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_COMPONENT_PERF_STATES

Notificação (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

O valor PEP_DPM_QUERY_COMPONENT_PERF_STATES.

Dados (PEP_DPM_QUERY_COMPONENT_PERF_STATES)

Um ponteiro para uma estrutura PEP_QUERY_COMPONENT_PERF_STATES .

Informa ao PEP que ele está sendo consultado para obter uma lista de valores discretos de estado de desempenho (estado P) para um conjunto de estado P especificado.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_STATES, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_QUERY_COMPONENT_PERF_STATES e o parâmetro Data aponta para uma estrutura PEP_QUERY_COMPONENT_PERF_STATES.

Para uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_STATES, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_REGISTER_COMPONENT_PERF_STATES

Notificação (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

O valor PEP_DPM_REGISTER_COMPONENT_PERF_STATES.

Dados (PEP_DPM_REGISTER_COMPONENT_PERF_STATES)

Um ponteiro para uma estrutura PEP_REGISTER_COMPONENT_PERF_STATES .

Informa o PEP sobre os estados de desempenho (estados P) do componente especificado.

Para enviar uma notificação de PEP_DPM_REGISTER_COMPONENT_PERF_STATES, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_REGISTER_COMPONENT_PERF_STATES e o parâmetro Data aponta para uma estrutura PEP_REGISTER_COMPONENT_PERF_STATES.

Para uma notificação de PEP_DPM_REGISTER_COMPONENT_PERF_STATES, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_REQUEST_COMPONENT_PERF_STATE

Notificação (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

O valor PEP_DPM_REQUEST_COMPONENT_PERF_STATE.

Dados (PEP_DPM_REQUEST_COMPONENT_PERF_STATE)

Um ponteiro para uma estrutura PEP_REQUEST_COMPONENT_PERF_STATE.

Informa ao PEP que uma ou mais alterações de estado de desempenho (estado P) são solicitadas pela PoFx (estrutura de gerenciamento de energia) do Windows.

Para enviar uma notificação de PEP_DPM_REQUEST_COMPONENT_PERF_STATE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_REQUEST_COMPONENT_PERF_STATE e o parâmetro Data aponta para uma estrutura PEP_REQUEST_COMPONENT_PERF_STATE.

Para uma notificação de PEP_DPM_REQUEST_COMPONENT_PERF_STATE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE

Notificação (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

O valor PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE.

Dados (PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE)

Um ponteiro para uma estrutura PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Informa ao PEP que ele está sendo consultado para obter informações sobre o estado P atual no conjunto de estado P especificado.

Para enviar uma notificação de PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nessa chamada, o valor do parâmetro Notification é PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE e o parâmetro Data aponta para uma estrutura PEP_QUERY_CURRENT_COMPONENT_PERF_STATE.

Para uma notificação de PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, a rotina AcceptDeviceNotification é sempre chamada em IRQL = PASSIVE_LEVEL.

PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS

Notificação (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

O valor PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS.

Dados (PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS)

Um ponteiro para uma estrutura PEP_DEBUGGER_TRANSITION_REQUIREMENTS .

Enviado ao PEP para consultar o conjunto de estados coordenados ou de plataforma que exigem que o depurador seja desligado.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação ao PEP para consultar o conjunto de estados coordenados ou de plataforma que exigem que o depurador seja desligado. Se essa notificação for aceita, o sistema operacional executará todas as transições de energia do depurador para o PEP e o PEP poderá não usar TransitionCriticalResource para gerenciar o depurador.

Essa notificação é enviada para cada dispositivo de depurador depois que o PEP aceita uma notificação de PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE ou PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES.

Para enviar uma notificação de PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Para essa notificação, a rotina AcceptDeviceNotification é sempre chamada em IRQL = DISPATCH_LEVEL.

PEP_DPM_QUERY_SOC_SUBSYSTEM

Notificação (PEP_DPM_QUERY_SOC_SUBSYSTEM)

O valor PEP_DPM_QUERY_SOC_SUBSYSTEM.

Dados (PEP_DPM_QUERY_SOC_SUBSYSTEM)

Um ponteiro para uma estrutura PEP_QUERY_SOC_SUBSYSTEM .

Enviado ao PEP para coletar informações básicas sobre um sistema específico em um subsistema de chip (SoC).

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP depois que os estados ociosos da plataforma foram inicializados para coletar informações básicas sobre um subsistema SoC específico. Um PEP que não implementa a contabilidade do subsistema SoC ou não o implementa para o estado ocioso da plataforma especificado retorna FALSE. Isso orienta o sistema operacional a parar de enviar notificações de diagnóstico para o PEP para esse estado ocioso da plataforma.

O SubsystemCount de um sistema e o MetadataCount de um subsistema podem ser alterados com atualizações pep/BSP. SubsystemIndex pode mudar sempre que o sistema operacional é inicializado.

Importante

O PEP não pode ignorar essa notificação. O PEP está recebendo essa notificação porque respondeu à notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex com um SubsystemCount diferente de zero.

Para enviar uma notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP no DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME

Notificação (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

O valor PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME.

Dados (PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME)

Um ponteiro para uma estrutura PEP_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME .

Enviado para o PEP quando o sistema operacional deseja coletar a contagem de tempo em que um determinado sistema em um subsistema de chip (SoC) bloqueou a entrada em um estado ocioso de plataforma específico sem o conhecimento do sistema operacional.

Normalmente, o sistema operacional chama essa notificação no final de uma sessão de espera conectada estendida em que o sistema operacional tentou entrar no estado ocioso da plataforma especificado. O PEP_QUERY_SOC_SUBSYSTEM_COUNT. O valor de SubsystemCount, preenchido anteriormente pelo PEP durante a inicialização do subcomponente, especifica quantas PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME notificações são enviadas ao PEP por vez. Um PEP pode receber várias notificações PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME para um determinado subsistema. Essas notificações podem ou não ser intercaladas com PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING notificações.

Importante

O PEP não pode ignorar essa notificação. O PEP está recebendo essa notificação porque respondeu à notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex com um SubsystemCount diferente de zero.

Para enviar uma notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP no DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT

Notificação (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

O valor PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT.

Dados (PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT)

Um ponteiro para uma estrutura PEP_QUERY_SOC_SUBSYSTEM_COUNT .

Enviado para o PEP depois que os estados ociosos da plataforma foram inicializados para informar ao sistema operacional se o PEP dá suporte ao sistema em um subsistema de chip (SoC) que contabiliza um determinado estado ocioso da plataforma.

Esta é a primeira notificação de diagnóstico do subsistema SoC enviada ao PEP. Um PEP que não implementa a contabilidade do subsistema SoC ou não o implementa para o estado ocioso da plataforma especificado retorna FALSE; nesse caso, o sistema operacional não enviará mais notificações de diagnóstico do subsistema SoC para esse estado ocioso da plataforma.

Observação

O PEP poderá ignorar essa notificação se não implementar notificações de diagnóstico do SoC para o estado ocioso da plataforma especificado.

Para enviar uma notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP no DISPATCH_LEVEL IRQL < .

PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA

Notificação (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

O valor PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA.

Dados (PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA)

Um ponteiro para uma estrutura PEP_QUERY_SOC_SUBSYSTEM_METADATA.

Enviado ao PEP para coletar metadados opcionais sobre o subsistema cujo tempo de bloqueio acabou de ser consultado.

Normalmente, essa notificação é enviada ao PEP imediatamente após uma notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME. Uma PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA notificação coleta todos os pares de metadados chave-valor que descrevem o subsistema.

Importante

O PEP não pode ignorar essa notificação. O PEP está recebendo essa notificação porque respondeu à notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para este PlatformIdleStateIndex com um SubsystemCount diferente de zero.

Para enviar uma notificação de PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Para essa notificação, a rotina AcceptDeviceNotification é chamada em IRQL < DISPATCH_LEVEL.

PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING

Notificação (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

O valor PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING.

Dados (PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING)

Um ponteiro para um ponteiro A para uma estrutura de PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING . Estrutura.

Enviado ao PEP para limpar todo o tempo de bloqueio de subsistema e a contabilidade de metadados, executar qualquer inicialização adicional necessária e reiniciar a contabilidade.

A PoFx (estrutura de gerenciamento de energia) do Windows envia essa notificação para o PEP a qualquer momento depois que todos os subsistemas são inicializados com o sistema operacional. Normalmente, essa notificação é chamada quando o sistema operacional inicia um novo período de análise em torno do que está mantendo o sistema em um soC (chip) fora do estado ocioso da plataforma especificado (direcionando o DRIPS ao entrar em espera conectado). O sistema operacional envia apenas essa notificação para estados ociosos da plataforma para os quais o PEP inicializou um ou mais subsistemas SoC.

Para enviar uma notificação de PEP_DPM_RESET_SOC_SUBSYSTEM_ACCOUNTING, a PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP no IRQL < DISPATCH_LEVEL.