Compartilhar via


Biblioteca de Platform Runtime Mechanism (PRM) de modo kernel do Windows

O PRM (Platform Runtime Mechanism) é uma interface baseada em GUID que permite que os drivers executem manipuladores pré-carregados no firmware UEFI (Unified Extensible Firmware Interface). O PRM oferece funcionalidade semelhante às chamadas SMI (System Management Interrupt) no System Management Mode (SMM), mas é mais seguro.

Durante o runtime do sistema, o firmware pode conter vários módulos PRM, cada um com um conjunto exclusivo de manipuladores.

Os drivers podem chamar manipuladores PRM para operações de baixo nível, como controle de componentes de hardware, gerenciamento de estados térmicos ou gerenciamento avançado de energia.

Siga estas etapas para verificar a disponibilidade de um manipulador específico e executá-lo. Você pode encontrar um exemplo de implementação desse processo no exemplo PrmFunc.

  1. Obtenha um ponteiro para uma estrutura PRM_INTERFACE chamando a rotina ExGetPrmInterface. Essa estrutura contém ponteiros para as rotinas de operação do PRM.

  2. Sincronize com possíveis atualizações de runtime para o módulo PRM chamando a rotina PRM_LOCK_MODULE. Bloquear e desbloquear chamadas são necessárias para séries transacionais de chamadas de manipulador PRM, mas geralmente é recomendado usá-las.

  3. Verifique a presença do manipulador PRM especificado usando a rotina PRM_QUERY_HANDLER.

  4. Se a consulta for bem-sucedida, chame o manipulador PRM chamando a rotina PRM_INVOKE_HANDLER. Forneça o GUID e o buffer de parâmetros, que devem conter os parâmetros para o manipulador PRM. O parâmetro de saída EfiStatus indicará o status da chamada do manipulador.

  5. Se você já tiver chamado PRM_LOCK_MODULE antes, libere o objeto de interface chamando a rotina PRM_UNLOCK_MODULE.

Confira também

Para mais informações, consulte as especificações do PRM.