Windows 内核模式平台运行时机制 (PRM) 库

平台运行时机制 (PRM) 是基于 GUID 的接口,使驱动程序能够运行在统一可扩展固件接口 (UEFI) 固件中预加载的处理程序。 PRM 提供的功能类似于系统管理模式 (SMM) 中的系统管理中断 (SMI) 调用,但更安全。

在系统运行时,固件可以包含多个 PRM 模块,并且每个模块都有一组唯一的处理程序。

驱动程序可以调用 PRM 处理程序进行低级别操作,例如控制硬件组件、管理热状态或高级电源管理。

执行以下步骤来检查特定处理程序的可用性并运行该处理程序。 可以在 PrmFunc 示例中找到此进程的示例实施。

  1. 通过调用 ExGetPrmInterface 例程,获取指向 PRM_INTERFACE 结构的指针。 此结构包含指向 PRM 操作例程的指针。

  2. 通过调用 PRM_LOCK_MODULE 例程,针对 PRM 模块的潜在运行时更新进行同步。 锁定和解锁调用是事务性系列 PRM 处理程序调用所必需的,但通常建议使用它们。

  3. 使用 PRM_QUERY_HANDLER 例程检查指定的 PRM 处理程序是否存在。

  4. 如果查询成功,则通过调用 PRM_INVOKE_HANDLER 例程调用 PRM 处理程序。 提供 GUID 和参数缓冲区,该缓冲区应包含 PRM 处理程序的参数。 EfiStatus 输出参数将指示处理程序调用的状态。

  5. 如果之前调用了 PRM_LOCK_MODULE,请调用 PRM_UNLOCK_MODULE 例程来释放 PRM 接口对象。

另请参阅

有关详细信息,请参阅 PRM 规范