2016-07-25 27 views
1

UEFIのプロトコルにフィルタドライバを追加しようとしています。これは、プロトコルを消費するすべての人が最終的に私を通過することを意味します。デバイスパスにドライバを追加するUEFI

私はドライバを関連するデバイスパスに追加する必要があることを理解しています。それ以上に、既にデバイスに接続されているハンドルはどのように機能しますか? (私が正しく理解していれば、BY_DRIVER | EXCLUSIVEを使って自分のドライバをデバイスに接続する必要があります。自分のドライバをデバイスパスに接続し、ドライバハンドルでConnectControllerを使うと、UEFIはサポートするハンドルを自動的に)。

特定のプロトコルのフィルタドライバ(または別のセマンティックレイヤドライバ)として動作するドライバを追加する方法を知っている人がいたらと思っています。

本当に、本当には他の場所で助けが見つかりませんでしたので、助けてください。

答えて

0

複雑ではありません。あなたがする必要があるのは、傍受したいプロトコルを再インストールすることだけです。

のは、一例としてEFI_PCI_IO_PROTOCOLを見てみましょう:

  1. すべてのPCIデバイスは、ハンドルデータベースにハンドル収集:LocateHandleBuffer()
  2. HandleProtocol()することにより、各ハンドル上の元のPCI IOインターフェイスを取得し、あなたがしたいこととして、どこかでそれを記録あなたの新しいプロトコルインターフェイスの中でそれを呼んでください。
  3. gBS->ReinstallProtocolInterfaceでPCI IOプロトコルを再インストールします。これによりデバイスが切断され、古いプロトコルインターフェイスが新しいプロトコルインターフェイスに置き換えられます。
関連する問題