Extensible Firmware Interface Specification
56 12/12/00 Version 1.02
Device Handle
First Handle
GUID
Interface
GUID
Interface
GUID
Interface
GUID
Interface
Protocol
Interface
Instance
Data
Protocol
Interface
Instance
Data
Protocol
Interface
Instance
Data
Protocol
Interface
Instance
Data
Device Handle
GUID
Interface
GUID
Interface
Protocol
Interface
Instance
Data
Protocol
Interface
Instance
Data
...
Figure 3-1. Device Handle to Protocol Handler Mapping

The ability to add new protocol interfaces as new handles or to layer them on existing interfaces

provides great flexibility. Layering makes it possible to add a new protocol that builds on a

devices basic protocols. An example of this might be to layer on a SIMPLE_TEXT_OUTPUT

protocol support that would build on the handles underlying SERIAL_IO protocol.

The ability to add new handles can be used to generate new devices as they are found, or even to

generate abstract devices. An example of this might be to add a multiplexing device that replaces

ConsoleOut with a virtual device that multiplexes the SIMPLE_TEXT_OUTPUT protocol onto

multiple underlying device handles.