【问题标题】:Adding a driver to device path UEFI将驱动程序添加到设备路径 UEFI
【发布时间】:2016-11-29 04:49:45
【问题描述】:

我正在尝试向 UEFI 中的协议添加过滤器驱动程序,这意味着在层次结构中使用该协议的每个人最终都会通过我。

我知道我需要将我的驱动程序添加到相关的设备路径 - 虽然不知道如何。不仅如此,它如何与已经连接到设备的任何手柄一起工作? (如果我理解正确,我需要使用 BY_DRIVER | EXCLUSIVE 将我的驱动程序连接到设备,并且一旦我将自己的驱动程序连接到设备路径并将 ConnectController 与我的驱动程序句柄一起使用,UEFI 应该会自动将任何支持句柄连接到我) .

我希望是否有人知道如何添加一个驱动程序来充当特定协议的过滤器驱动程序(或在不同的语义层驱动程序中?)。

真的,真的感谢任何给定的帮助,因为我在其他任何地方都没有找到任何帮助。

【问题讨论】:

    标签: c filter driver bios uefi


    【解决方案1】:

    这并不复杂。您唯一需要做的就是重新安装您想要拦截的协议。

    我们以 EFI_PCI_IO_PROTOCOL 为例:

    1. 收集句柄数据库中的所有 PCI 设备句柄:LocateHandleBuffer()
    2. 通过HandleProtocol() 获取每个句柄上的原始 PCI IO 接口,将其记录在您可能希望在新协议接口中调用它的某个位置。
    3. 通过gBS->ReinstallProtocolInterface重新安装PCI IO协议,这将断开设备并用新的协议接口替换旧的协议接口。

    【讨论】:

      猜你喜欢
      • 2013-08-01
      • 2018-04-05
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2018-04-06
      相关资源
      最近更新 更多