2016-07-25 63 views
1

我想向UEFI中的協議添加篩選器驅動程序,這意味着在層次結構中使用該協議的每個人最終都會通過我。將驅動程序添加到設備路徑UEFI

我知道我需要將我的驅動程序添加到相關的設備路徑 - 雖然不知道如何。更重要的是,它將如何與已連接到設備的任何手柄一起工作? (如果我理解正確,我需要使用BY_DRIVER | EXCLUSIVE將我的驅動程序連接到設備,並且一旦將自己的驅動程序連接到設備路徑並使用ConnectController和我的驅動程序句柄,UEFI應該自動將任何支持句柄連接到我)。

我希望如果有人知道如何添加一個驅動程序作爲過濾驅動程序(或在一個不同的語義層驅動程序?)爲特定的協議。

真的,真的欣賞任何幫助,因爲我沒有找到任何其他地方的任何幫助。

回答

0

這並不複雜。你唯一需要做的就是重新安裝你想攔截的協議。

讓我們EFI_PCI_IO_PROTOCOL爲例:

  1. 收集所有PCI設備在處理數據庫處理:LocateHandleBuffer()
  2. 通過HandleProtocol()獲取每個處理原始PCI IO接口,地方記錄下來,你可能想在新的協議接口中調用它。
  3. 重新安裝PCI IO協議gBS->ReinstallProtocolInterface,這將斷開設備並將舊協議接口替換爲新的協議接口。