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

Cada notificação do DPM (gerenciamento de energia do dispositivo) recebida pela rotina de retorno de chamada AcceptDeviceNotification do 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 para o tipo de notificação especificado.

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

ID da 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 dados. Informa ao PEP que possui o dispositivo especificado para configurar o dispositivo para operar no estado de energia do dispositivo D0 (em funcionamento).

A Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação ao PEP antes que a pilha de driver do 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 PEP_DPM_PREPARE_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro Notification é PEP_DPM_PREPARE_DEVICE e o parâmetro Data aponta para uma estrutura PEP_PREPARE_DEVICE dados. 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 é o proprietário do 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 de relógio e a energia do dispositivo em resposta a uma notificação PEP_DPM_ABANDON_DEVICE dados.

A tabela a seguir mostra as pré-condições que estão em vigor quando esse sistema operacional envia uma notificação do PEP_DPM_PREPARE_DEVICE para o PEP e as pós-condições que devem estar em vigor depois que o PEP trata dessa 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 ligado e os relógios do dispositivo deverão ser ungados.
O PEP pode receber PEP_DPM_PREPARE_DEVICE notificações para vários dispositivos à medida que o gerenciador de energia tenta encontrar proprietários 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 são enviadas para dispositivos principais.

Para uma 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 dados. Informa ao PEP que o dispositivo especificado não está mais sendo usado pelo sistema operacional.

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

Para enviar uma PEP_DPM_ABANDON_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro Notification é PEP_DPM_ABANDON_DEVICE e o parâmetro Data aponta para uma estrutura PEP_ABANDON_DEVICE dados. 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 é o proprietário do 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 trata dessa notificação para um dispositivo que ele possui.

Pré-condições Pós-condições
O PEP recebeu uma PEP_DPM_PREPARE_DEVICE para o dispositivo e aceitou a propriedade do dispositivo.
Se o PEP recebeu uma PEP_DPM_REGISTER_DEVICE para o dispositivo e aceitou o registro do dispositivo, ele recebeu posteriormente uma PEP_DPM_UNREGISTER_DEVICE para o dispositivo.
Todos os recursos que foram alocados em resposta à notificação PEP_DPM_PREPARE_DEVICE devem ser liberados.
Para uma 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 dados.

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

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 PEP_DPM_REGISTER_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta 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 controle 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 é o proprietário do 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 trata dessa notificação para um dispositivo que ele possui.

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

Para uma 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 dados.

Informa ao PEP que é o proprietário do dispositivo especificado que a pilha de driver do dispositivo retém seu registro da estrutura de gerenciamento de energia Windows (PoFx).

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

Para enviar uma PEP_DPM_UNREGISTER_DEVICE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro Notification é PEP_DPM_UNREGISTER_DEVICE e o parâmetro Data aponta para uma estrutura PEP_UNREGISTER_DEVICE dados. Essa estrutura contém o alça que o PEP criou em resposta à notificação 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 trata dessa notificação para um dispositivo que ele possui.

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

Para uma 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 dados.

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 PEP_DPM_DEVICE_POWER_STATE trabalho. 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 estão disponíveis. Dessa forma, o PoFx garante que a solicitação de trabalho que o PEP passa para o PoFx durante a notificação nunca poderá falhar devido à falta de recursos.

Para enviar uma PEP_DPM_DEVICE_POWER_STATE, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta 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 dados. Na entrada, o PEP deve assumir que o conteúdo dessa estrutura não está reinicializado. 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 descreve 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 tratou a notificação PEP_DEVICE_POWER_STATE e se o membro WorkInformation aponta para uma estrutura PEP_WORK_INFORMATION válida. Se o PEP não conseguir manipular a notificação ou não puder alocar a estrutura PEP_WORK_INFORMATION, o PEP deverá definir o membro WorkInformation como NULL e definir o membro NeedWork como FALSE.

Para uma 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.

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

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

Um componente que é acessível está na condição ativa. Um componente que está inacessível está na condição de ociosidade. Um componente que está na condição ativa está sempre no estado de energia do componente F0. O componente não pode sair de F0 até que ele Insira a condição de ociosidade. Um componente que está na condição ociosa pode estar em F0 ou em um estado de baixa energia FX. 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á no F0, mas também está na condição ociosa, pode ser prestes a mudar para um estado de baixa energia FX.

Quando um componente ativo está pronto para entrar na condição de ociosidade, a transição ocorre imediatamente. Durante o tratamento da notificação de PEP_DPM_COMPONENT_ACTIVE, o PEP pode, por exemplo, solicitar uma transição de F0 para um estado de baixa energia FX para o componente.

Se um componente estiver em um estado de baixa energia FX 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 mudar o componente para F0 antes que o componente possa inserir a condição ativa. O PEP pode precisar terminar de preparar o 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 o Trabalhotype = PepWorkActiveComplete na estrutura de PEP_WORK_INFORMATION.

Se o PEP receber uma notificação de 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 de PEP_COMPONENT_ACTIVE para essa notificação conterá um ponteiro para uma estrutura de PEP_WORK_INFORMATION, e o PEP poderá definir o membro do conjunto de trabalho dessa estrutura como PepWorkActiveComplete para concluir a transição. No entanto, se WorkInformation = NULL, nenhum "caminho rápido" está disponível e o PEP deve 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 de PEP_WORK .

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

Depois que o PEP chama a rotina RequestWorker para solicitar um item de trabalho, o PoFx responde enviando o 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ário para processar o item de trabalho estejam disponíveis. Dessa forma, o PoFx garante que a solicitação de trabalho que o PEP passa para PoFx durante a notificação nunca possa falhar devido à falta de recursos.

Para enviar uma notificação de PEP_DPM_WORK, o sistema operacional chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro de notificação é PEP_DPM_WORK e o parâmetro de dados aponta para uma estrutura de PEP_WORK. Na entrada, o PEP deve assumir que o conteúdo dessa estrutura não foi 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 descreve o trabalho que está sendo solicitado. Além disso, o PEP deve definir o membro necessário da estrutura de PEP_WORK como TRUE para confirmar que o PEP tratou 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 falhar em lidar com a notificação ou não puder alocar a estrutura de PEP_WORK_INFORMATION, o PEP deverá definir o membro WorkInformation como nulo e definir o membro necessário 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 de 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.

o Windows PoFx (estrutura de gerenciamento de energia) 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, neste caso, aponta para a estrutura de PEP_POWER_CONTROL_REQUEST

As solicitações de controle de energia e suas semânticas são definidas entre o gravador PEP e o proprietário da classe do dispositivo. Normalmente, essa interface é para comunicação específica de 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 transmissão para o PEP para modificar alguns trilhos/divisores de relógio de plataforma e essa comunicação provavelmente aproveitaria uma solicitação de controle de energia.

! ANOTAÇÕES O PEP só pode solicitar o envio de um código de controle para o dispositivo depois que ele recebe uma notificação PEP_DPM_DEVICE_STARTED ou PEP_DPM_POWER_CONTROL_REQUEST notificação.

Para uma notificação de 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 de PEP_POWER_CONTROL_COMPLETE .

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

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

! ANOTAÇÕES 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 de PEP_SYSTEM_LATENCY .

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

o Windows PoFx (estrutura de gerenciamento de energia) 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 foi usada pelo PEP para a seleção de estado ocioso do processador e da plataforma. Com as interfaces PEP mais recentes, o processo de seleção é totalmente manipulado pelo sistema operacional e, dessa forma, essa notificação não é mais útil. Ele está incluído aqui para fins de integridade e o PEP deve ignorá-lo.

Para enviar uma notificação de PEP_DPM_SYSTEM_LATENCY_UPDATE, 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 de 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 registram-se no sistema operacional para o gerenciamento de energia em tempo de execução 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.

Após o registro ser executado com sucesso, o driver tem 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 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 o gerenciamento de energia em tempo de execução.

Como resultado, o PEP não pode emitir nenhuma solicitação de controle de energia para o driver, a menos que ele tenha recebido primeiro uma notificação de PEP_DPM_DEVICE_STARTED ou uma notificação 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 de PEP_NOTIFY_COMPONENT_IDLE_STATE .

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

o Windows PoFx (estrutura de gerenciamento de energia) 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 notificações anteriores e posteriores 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 ao fazer a transição para F0. Nesse caso, o PEP pode precisar reabilitar recursos de relógio ou energia, de modo que, quando o driver tratar a notificação F0, o hardware estará disponível. De acordo, as pós-notificações geralmente são usadas ao fazer a transição de F0 para um estado de ociosidade mais profundo. Depois que um driver tratou a notificação de estado ocioso, o PEP pode desativar com segurança recursos de relógio e energia.

Manipular uma transição de estado ocioso para um determinado componente pode exigir processamento assíncrono se a operação levar um tempo significativo 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 para ser concluída de forma assíncrona, o PEP notificará o sistema operacional na conclusão solicitando um trabalhador (consulte RequestWorker) e preenchendo a estrutura de informações de trabalho fornecida na notificação PEP_DPM_WORK resultante usando um tipo de trabalho de PepWorkCompleteIdleState.

Para enviar uma notificação de PEP_DPM_NOTIFY_COMPONENT_IDLE_STATE, 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 de PEP_REGISTER_DEBUGGER .

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

o Windows PoFx (estrutura de gerenciamento de energia) 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 de 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 de PEP_LOW_POWER_EPOCH .

Essa notificação é 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 de PEP_REGISTER_CRASHDUMP_DEVICE .

o Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação quando um dispositivo é registrado como um manipulador de despejo desa.

A capacidade de gerar um despejo de memória (despejo) quando o sistema encontra um erro fatal é inestimável para determinar a causa da falha. Windows, por padrão, gerará um despejo de falha quando o sistema encontrar uma verificação de bugs. Nesse contexto, o sistema está sob 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 despejo de memória 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. Como tal, o sistema operacional solicita um retorno de chamada (PowerOnDumpDeviceCallback) do PEP para cada dispositivo na pilha de despejo e invoca o retorno de chamada ao gerar o arquivo de despejo.

Considerando o ambiente restrito no momento da falha, o retorno de chamada fornecido pelo PEP não deve acessar o código paginado, bloquear qualquer evento ou invocar qualquer código que possa fazer o mesmo. Além disso, o processo de ligar os recursos necessários não pode depender de interrupções. Como resultado, o PEP pode precisar reverter para 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 deve lidar com a notificação ou não fornecer uma rotina de retorno de chamada.

Para enviar uma notificação de PEP_DPM_REGISTER_CRASHDUMP_DEVICE, 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 de PEP_DEVICE_PLATFORM_CONSTRAINTS . Enviado para o PEP para consultar dependências entre os Estados de dispositivo D e a plataforma ociosa.

o Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação para o PEP para consultar dependências entre estados de dispositivo D e estados ociosos de plataforma. O PEP usa essa notificação para retornar o estado D mais leve que o dispositivo ainda pode estar no 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 de ociosidade de plataforma não depender desse dispositivo estar em qualquer estado D, o PEP deverá especificar um estado D mínimo de PowerDeviceD0. Se nenhum estado de ociosidade de plataforma depender desse dispositivo estar em um em particular, essa notificação poderá ser ignorada.

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

Para enviar uma notificação de PEP_DPM_DEVICE_IDLE_CONSTRAINTS, PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro de notificação é PEP_DPM_DEVICE_IDLE_CONSTRAINTS e o parâmetro de dados aponta para uma estrutura de 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 de PEP_COMPONENT_PLATFORM_CONSTRAINTS .

Enviado para o PEP para consultar dependências entre Estados F do componente e Estados ociosos da plataforma.

o Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação para o PEP para consultar dependências entre estados F do componente e estados ociosos da plataforma. O PEP usa essa notificação para retornar o estado F mais leve que o componente ainda pode estar no e inserir 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 de ociosidade de plataforma não depender desse componente estar em um estado F, o PEP deverá especificar um estado F mínimo de 0. Se nenhum estado de ociosidade da plataforma depender desse componente estar em um em particular, essa notificação poderá ser ignorada.

Restrições de ociosidade de dispositivo mais profundas que D0 são mais restritas que os Estados de ociosidade de componente para componentes no dispositivo. Para um determinado índice de estado ocioso da plataforma, se o dispositivo tiver especificado uma restrição de ociosidade do dispositivo, a restrição de ociosidade 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, 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 de PEP_QUERY_COMPONENT_PERF_CAPABILITIES .

Informa ao PEP que ele está sendo consultado pelo número de conjuntos de estado de desempenho (estado P) que são definidos para um componente.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES, PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro de notificação é PEP_DPM_QUERY_COMPONENT_PERF_CAPABILITIES e o parâmetro de dados aponta para uma estrutura de 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 de 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 Estados P) para um componente.

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

Para uma notificação de 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 de 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 Estados P) para um componente.

Para enviar uma notificação de PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME, PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta chamada, o valor do parâmetro de notificação é PEP_DPM_QUERY_COMPONENT_PERF_SET_NAME e o parâmetro de dados aponta para uma estrutura de 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 dados.

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

Para enviar uma PEP_DPM_QUERY_COMPONENT_PERF_STATES, o 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 dados.

Para uma 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 dados.

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

Para enviar uma PEP_DPM_REGISTER_COMPONENT_PERF_STATES, o PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta 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 dados.

Para uma 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 dados.

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

Para enviar uma PEP_DPM_REQUEST_COMPONENT_PERF_STATE, o PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta 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 dados.

Para uma 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 dados.

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 PEP_DPM_QUERY_CURRENT_COMPONENT_PERF_STATE, o PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Nesta 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 dados.

Para uma 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 dados.

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

A Windows PoFx (estrutura de gerenciamento de energia) 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 a cada dispositivo de depurador depois que o PEP aceita uma notificação PEP_NOTIFY_PPM_QUERY_PLATFORM_STATE ou PEP_NOTIFY_PPM_QUERY_COORDINATED_STATES aplicativo.

Para enviar uma PEP_DPM_QUERY_DEBUGGER_TRANSITION_REQUIREMENTS, o 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 dados.

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

A Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação ao PEP depois que os estados ociosos da plataforma são 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 a implementa para o estado ocioso da plataforma especificado, retorna FALSE. Isso direciona 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 mudar 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 à PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para essa PlatformIdleStateIndex com um SubsystemCount não zero.

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

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 dados.

Enviado ao PEP quando o sistema operacional deseja coletar o tempo que um sistema específico 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 em espera conectada estendida em que o sistema operacional tentou entrar no estado ocioso da plataforma especificado. O PEP_QUERY_SOC_SUBSYSTEM_COUNT. O valor subsystemCount, preenchido anteriormente pelo PEP durante a inicialização do subcomponente, especifica quantas notificações de PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME são enviadas ao PEP por vez. Um PEP pode receber várias PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME notificações 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 à PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para essa PlatformIdleStateIndex com um SubsystemCount não zero.

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

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 dados.

Enviado ao PEP depois que os estados ociosos da plataforma foram inicializados para dizer ao sistema operacional se o PEP dá suporte ao sistema em um subsistema soC (chip), considerando 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 a implementa para o estado ocioso da plataforma especificado, retorna FALSE, caso em que 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 de SoC para o estado ocioso da plataforma especificado.

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

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 dados.

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 PEP_DPM_QUERY_SOC_SUBSYSTEM_BLOCKING_TIME de dados. Uma PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA 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 à PEP_DPM_QUERY_SOC_SUBSYSTEM_COUNT para essa PlatformIdleStateIndex com um SubsystemCount não zero.

Para enviar uma PEP_DPM_QUERY_SOC_SUBSYSTEM_METADATA, o PoFx chama a rotina de retorno de chamada AcceptDeviceNotification do PEP. Para essa notificação, a rotina AcceptDeviceNotification é chamada no 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 PEP_RESET_SOC_SUBSYSTEM_ACCOUNTING dados. Estrutura.

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

A Windows PoFx (estrutura de gerenciamento de energia) envia essa notificação ao 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 chip (SoC) fora do estado ocioso da plataforma especificada (direcionando PARALISTA ao entrar em espera conectada). O sistema operacional envia essa notificação apenas para estados ociosos da plataforma para os quais o PEP inicializou um ou mais subsistemas SoC.

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