如何在UEFI中hook DiskIO、BlockIO等协议?

How to hook protocol,such as DiskIO and BlockIO,in UEFI?

我想开发一款基于UEFI的无盘产品(基于legacy BIOS的无盘产品已经流行了很多年),但是遇到了一个问题---- 需要hook DiskIO Protocol和BlockIO Protocl来过滤一些IO操作来替代UEFI中原有的协议,但我不知道如何实现。所以我想在这里得到答案。

注册协议通知事件以在协议发布后调用,并调用 gBS->ReinstallProtocolInterface 将其替换为您的钩子。