借り初めのひみつきち

仮ブログです。

EFI_ABSOLUTE_POINTER_PROTOCOL の不思議

そういえば GOP のサンプルで LocateHandleBuffer で複数の GOP を取得してから選択して使ってるサンプルを見かけたな~と思い出しました。

UEFI 設定画面ではタッチが使えるし EFI_ABSOLUTE_POINTER_PROTOCOL を取得できるのでタッチが使えるはずの機種で、ふつうに EFI_ABSOLUTE_POINTER_PROTOCOL を取得するとタッチイベントがまったく返ってこない機種が結構ありました。

最初ぜんぜん理由がわからなかったのですが、GOP の件を思い出して EFI_ABSOLUTE_POINTER_PROTOCOL についても LocateHandleBuffer で同じような問い合わせをしてみたところ、複数のプロトコルが返ってきました。

そして、すべてのプロトコルに順番に問い合わせるようなコードを書いてみたら見事にタッチがとれました。

1番目のインターフェースからタッチが取れる機種もあれば、2番目と3番目のインターフェースからランダムに取れる機種も・・・

どう見てもタッチパネルひとつしかないのに3つ返ってくる機種とかどうなってるんですかね?

複数のインターフェースがあるってことは何か意味があるはずですがよくわかりません。。