gpt4 book ai didi

c - 将驱动程序添加到设备路径 UEFI

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:54 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

我们以 EFI_PCI_IO_PROTOCOL 为例:

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

关于c - 将驱动程序添加到设备路径 UEFI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38574623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com