Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Cada notificação de ACPI que a rotina de retorno de chamada AcceptAcpiNotification do PEP recebe é acompanhada por um parâmetro de Notificação, que indica o tipo de notificação, e um parâmetro de Dados, que aponta para uma estrutura de dados que contém as informações para o tipo especificado de notificação.
Nessa chamada, o parâmetro Notificação é definido como um valor constante PEP_NOTIFY_ACPI_XXX que indica o tipo de notificação. O parâmetro Data aponta para um tipo de estrutura PEP_ACPI_XXX associado a esse tipo de notificação.
As seguintes IDs de notificação de ACPI são usados pela função de callback AcceptAcpiNotification.
| ID de notificação | Valor | Estrutura associada |
|---|---|---|
| PEP_NOTIFY_ACPI_PREPARE_DEVICE | 0x01 | PEP_ACPI_PREPARE_DEVICE |
| PEP_NOTIFY_ACPI_ABANDON_DEVICE | 0x02 | PEP_ACPI_ABANDON_DEVICE |
| PEP_NOTIFY_ACPI_REGISTER_DEVICE | 0x03 | PEP_ACPI_REGISTER_DEVICE |
| PEP_NOTIFY_ACPI_UNREGISTER_DEVICE | 0x04 | PEP_ACPI_UNREGISTER_DEVICE |
| PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE | 0x05 | PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE |
| PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION | 0x06 | PEP_ACPI_QUERY_OBJECT_INFORMATION |
| PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD | 0x07 | PEP_ACPI_EVALUATE_CONTROL_METHOD |
| PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES | 0x08 | PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES |
| PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES | 0x09 | PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES |
PEP_NOTIFY_ACPI_PREPARE_DEVICE
Notificação: o valor PEP_NOTIFY_ACPI_PREPARE_DEVICE. Dados: um ponteiro para uma estrutura de PEP_ACPI_PREPARE_DEVICE que identifica o dispositivo pelo nome.
Permite que o PEP escolha se deseja fornecer serviços ACPI para um dispositivo.
A PoFx (estrutura de gerenciamento de energia do Windows) envia essa notificação quando o driver ACPI do Windows descobre um novo dispositivo no namespace ACPI durante a enumeração do dispositivo. Essa notificação é enviada aos PEPs que implementam rotinas de retorno de chamada AcceptAcpiNotification.
Para enviar uma notificação PEP_NOTIFY_ACPI_PREPARE_DEVICE, o PoFx chama a rotina AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_PREPARE_DEVICE e o parâmetro Data aponta para uma estrutura PEP_ACPI_PREPARE_DEVICE que contém o nome do dispositivo. Se o PEP estiver preparado para fornecer serviços ACPI para esse dispositivo, o PEP definirá o membro DeviceAccepted dessa estrutura como TRUE. Para recusar a prestação desses serviços, o PEP define esse membro como FALSE.
Se o PEP indicar (definindo DeviceAccepted = TRUE) que ele está preparado para fornecer serviços ACPI para o dispositivo, a PoFx responderá enviando ao PEP uma notificação PEP_NOTIFY_ACPI_REGISTER_DEVICE para registrar o PEP como o único provedor de serviços ACPI para o dispositivo. A PoFx espera que apenas um PEP reivindice a função de provedor de serviços ACPI para um dispositivo.
Como prática recomendada, não execute nenhuma inicialização de dispositivo em resposta à notificação de PEP_NOTIFY_ACPI_PREPARE_DEVICE. Em vez disso, adie essa inicialização até que a notificação PEP_NOTIFY_ACPI_REGISTER_DEVICE para o dispositivo seja recebida ou um método de controle ACPI (por exemplo, _INI) seja invocado para o dispositivo.
Para uma notificação PEP_NOTIFY_ACPI_PREPARE_DEVICE, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_ABANDON_DEVICE
Notificação: o valor PEP_NOTIFY_ACPI_ABANDON_DEVICE.
Dados: um ponteiro para uma estrutura de PEP_ACPI_ABANDON_DEVICE que identifica o dispositivo abandonado.
Informa ao PEP que o dispositivo especificado foi abandonado e não requer mais serviços de ACPI do PEP.
A PoFx (estrutura de gerenciamento de energia do Windows) envia essa notificação para informar ao PEP que o dispositivo não está mais em uso pelo sistema operacional. O PEP pode usar essa notificação para limpar qualquer armazenamento interno alocado para acompanhar o estado do dispositivo.
Para enviar uma notificação de PEP_NOTIFY_ACPI_ABANDON_DEVICE, o PoFx chama a função de callback AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_ABANDON_DEVICE e o parâmetro Data aponta para uma estrutura de PEP_ACPI_ABANDON_DEVICE.
A PoFx envia essa notificação apenas para um PEP que optou por fornecer serviços ACPI para o dispositivo em uma notificação de PEP_NOTIFY_ACPI_PREPARE_DEVICE anterior. Se o PEP tiver se registrado para fornecer esses serviços anteriormente em uma notificação PEP_NOTIFY_ACPI_REGISTER_DEVICE, a PoFx enviará uma notificação PEP_NOTIFY_ACPI_UNREGISTER_DEVICE para o dispositivo antes de enviar a notificação PEP_NOTIFY_ACPI_ABANDON_DEVICE.
Para uma notificação PEP_NOTIFY_ACPI_ABANDON_DEVICE, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_REGISTER_DEVICE
Notificação: o valor PEP_NOTIFY_ACPI_REGISTER_DEVICE.
Dados: um ponteiro para uma estrutura do tipo PEP_ACPI_REGISTER_DEVICE que serve para identificar o dispositivo. Em resposta a essa notificação, espera-se que o PEP crie um valor PEPHANDLE válido para identificar o dispositivo e escreva esse valor de handle na estrutura.
Registra o PEP como o único provedor de serviços ACPI do dispositivo especificado.
O framework de gerenciamento de energia do Windows (PoFx) envia essa notificação a um PEP que indicou, em uma notificação anterior de PEP_NOTIFY_ACPI_PREPARE_DEVICE, que está preparado para fornecer serviços ACPI para o dispositivo especificado.
Para enviar uma notificação PEP_NOTIFY_ACPI_REGISTER_DEVICE, o PoFx chama a rotina AcceptAcpiNotification do PEP. Nesta chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_REGISTER_DEVICE e o parâmetro Data aponta para uma estrutura de PEP_ACPI_REGISTER_DEVICE que identifica o dispositivo para o qual o PEP deve fornecer serviços ACPI.
Para uma notificação PEP_NOTIFY_ACPI_REGISTER_DEVICE, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_UNREGISTER_DEVICE
Notificação: o valor PEP_NOTIFY_ACPI_UNREGISTER_DEVICE.
Dados: um ponteiro para uma estrutura PEP_ACPI_UNREGISTER_DEVICE que contém o PEPHANDLE para o dispositivo.
Cancela o registro do dispositivo especificado para serviços ACPI na PEP.
Em resposta a essa notificação, o PEP pode destruir o PEPHANDLE que o PEP criou para esse dispositivo em uma notificação de PEP_NOTIFY_ACPI_REGISTER_DEVICE anterior.
Para enviar uma notificação PEP_NOTIFY_ACPI_UNREGISTER_DEVICE, a PoFx chama a rotina de retorno de chamada AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_UNREGISTER_DEVICE e o parâmetro Data aponta para uma estrutura PEP_ACPI_UNREGISTER_DEVICE.
Para uma notificação PEP_NOTIFY_ACPI_UNREGISTER_DEVICE, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE
Notificação: o valor PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE.
Dados: um ponteiro para uma estrutura do tipo PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE que contém uma enumeração dos objetos no namespace ACPI do dispositivo.
Consulta o PEP para obter a lista de objetos ACPI (métodos nativos) com suporte pelo PEP no dispositivo especificado no namespace ACPI.
O driver ACPI do Windows usa os objetos enumerados por essa notificação para criar o namespace para o dispositivo especificado. Depois disso, ao se referir a esse dispositivo, o driver ACPI consultará o PEP somente para esses objetos.
O framework de gerenciamento de energia do Windows (PoFx) envia a notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE logo após um dispositivo ser descoberto e o PEP se registrar para fornecer serviços ACPI para o dispositivo. Para obter mais informações sobre esse registro, consulte PEP_NOTIFY_ACPI_REGISTER_DEVICE.
Para enviar uma notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE, o PoFx chama a rotina de retorno de chamada AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE e o parâmetro Data aponta para uma estrutura PEP_ACPI_ENUMERATE_DEVICE_NAMESPACE.
Espera-se que a rotina AcceptAcpiNotification lide com uma notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE e retorne TRUE. A falha ao fazer isso causa uma verificação de bugs.
Para uma notificação PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION
Notificação: o valor PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION.
Dados: um ponteiro para uma estrutura PEP_ACPI_QUERY_OBJECT_INFORMATION que define os atributos do objeto ACPI.
Consulta o PEP para obter informações sobre um objeto ACPI enumerado anteriormente.
A estrutura de gerenciamento de energia do Windows (PoFx) envia essa notificação para consultar o PEP quanto aos atributos de um objeto que foi enumerado durante o tratamento de uma notificação anterior de PEP_NOTIFY_ACPI_ENUMERATE_DEVICE_NAMESPACE. Atualmente, os únicos objetos que são enumerados são métodos de controle.
Para enviar uma notificação PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION, o PoFx chama a rotina de callback AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION e o parâmetro Data aponta para uma estrutura PEP_ACPI_QUERY_OBJECT_INFORMATION.
Para uma notificação PEP_NOTIFY_ACPI_QUERY_OBJECT_INFORMATION, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD
Notificação: o valor PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD.
Dados: um ponteiro para uma estrutura de PEP_ACPI_EVALUATE_CONTROL_METHOD que especifica um método de controle ACPI a ser avaliado, um argumento de entrada para fornecer a esse método e um buffer de saída para o resultado.
É usado para avaliar um método de controle ACPI para o qual o PEP é o manipulador registrado.
A PoFx (Estrutura de Gerenciamento de Energia do Windows) envia essa notificação para o PEP quando o driver ACPI do Windows precisa avaliar um método de controle ACPI implementado pelo PEP.
Para enviar uma notificação PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD, PoFx chama a função de retorno AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD e o parâmetro Data aponta para uma estrutura PEP_ACPI_EVALUATE_CONTROL_METHOD.
O designer de plataforma pode escolher se deseja que o PEP ou o firmware ACPI manipule um método de controle ACPI específico. Se o PEP for o manipulador registrado para um método de controle ACPI, PoFx responderá a uma solicitação do driver ACPI do Windows para avaliar esse método enviando uma notificação de PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD ao PEP.
Veja a seguir uma lista de exemplos de métodos de controle ACPI que o PEP pode manipular para um dispositivo:
Identificação e configuração do dispositivo: _HID, _CID, _UID, _ADR, _CLS, _SUB, _CRS, _PRS e assim por diante. Gerenciamento e ativação de energia do dispositivo: _PS0 até _PS3, _PR0 até _PR3, _DSW e assim por diante. Métodos específicos do dispositivo: _DSM e quaisquer métodos de controle específicos da pilha de dispositivos. Para um dispositivo especial, como um dispositivo de Tempo e Alarme ACPI, essa notificação é usada para avaliar métodos de tempo e alarme (_GCP, _GRT, _SRT e assim por diante).
Para uma notificação PEP_NOTIFY_ACPI_EVALUATE_CONTROL_METHOD, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES
Notificação: o valor PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES.
Dados: um ponteiro para uma estrutura PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES que contém a lista de recursos de energia.
Consulta o PEP para obter a lista de recursos brutos necessários para controlar a energia do dispositivo.
Em resposta a essa notificação, o PEP fornece a lista de recursos brutos necessários para controlar a energia do dispositivo. O driver ACPI do Windows requer essa lista para que ele possa reservar os recursos de energia necessários pelo dispositivo e fornecer a lista correspondente de recursos traduzidos para o PEP, realizando o envio de uma notificação PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES. Para obter mais informações, consulte Recursos Brutos e Traduzidos.
Para enviar uma notificação PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES, a estrutura de gerenciamento de energia do Windows (PoFx) chama a rotina de retorno de chamada AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES e o parâmetro Data aponta para uma estrutura PEP_ACPI_QUERY_DEVICE_CONTROL_RESOURCES.
Para uma notificação PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES
Notificação: o valor PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES.
Dados: um ponteiro para uma estrutura PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES que contém a lista de recursos traduzidos.
Fornece ao PEP uma lista de recursos traduzidos para todos os recursos de controle de energia necessários para o dispositivo.
O PoFx (estrutura de gerenciamento de energia do Windows) envia essa notificação se o PEP tiver listado quaisquer recursos brutos em resposta à notificação anterior de PEP_NOTIFY_ACPI_QUERY_DEVICE_CONTROL_RESOURCES. A notificação PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES fornece ao PEP a lista correspondente de recursos traduzidos. Para obter mais informações, consulte Recursos Brutos e Traduzidos.
Para enviar uma notificação PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES, o PoFx chama a rotina de retorno de chamada AcceptAcpiNotification do PEP. Nessa chamada, o valor do parâmetro de notificação é PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES e o parâmetro Data aponta para uma estrutura PEP_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES.
Para uma notificação PEP_NOTIFY_ACPI_TRANSLATED_DEVICE_CONTROL_RESOURCES, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.
PEP_NOTIFY_ACPI_WORK
Notificação: o valor PEP_NOTIFY_ACPI_WORK.
Dados: 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). Esta notificação é usada exclusivamente para trabalhos relacionados ao ACPI.
Depois que o PEP chama a rotina RequestWorker para solicitar um item de trabalho, a PoFx responde enviando ao PEP uma notificação PEP_NOTIFY_ACPI_WORK. No entanto, essa notificação não será 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.
Na entrada, o PEP deve assumir que a estrutura de PEP_WORK não está inicializada. Para lidar com essa notificação, o PEP deve definir o membro WorkInformation para apontar para uma estrutura PEP_WORK_INFORMATION, previamente alocada por ele, que descreve o trabalho solicitado. Além disso, o PEP deve configurar o membro NeedWork da estrutura PEP_WORK como TRUE para confirmar que o PEP processou a notificação PEP_NOTIFY_ACPI_WORK e que o membro WorkInformation aponta para uma estrutura PEP_WORK_INFORMATION válida. Se o PEP falhar ao lidar com a notificação ou não conseguir alocar a estrutura de PEP_WORK_INFORMATION, o PEP deverá definir o membro WorkInformation como NULL e definir o membro NeedWork como FALSE.
Para uma notificação PEP_NOTIFY_ACPI_WORK, a rotina AcceptAcpiNotification é sempre chamada em IRQL = PASSIVE_LEVEL.