UEFIでEject専用機を作ろうとした

Eject専用PCを作りたい衝動に駆られたので、EjectするだけのUEFI Applicationを書いた。
6f70/efieject · GitHub
某所で話した時にはEFI_EXT_SCSI_PASS_THRU_PROTOCOLを使っていたが、EFI_SCSI_IO_PROTOCOLの方がシンプルなので切り替えた。

これをブートローダーに設定すると、起動画面はこんな感じになる。
f:id:xoreaxeax:20131212231103p:plain

VirtualBox 4.3.4上でパススルーのホストドライブをeject出来る事を確認した。binary/にefiファイルとisoファイルを入れておいたので手軽にejectできる。
ただ、残念なことに手元の実機(M/B: GA-H77-D3H)では動かなかった。LocateHandleBufferでEFI_NOT_FOUNDが返ってくる。EFI_SCSI_IO_PROTOCOLが実装されていないか、何か勘違いしているのかもしれない。