4.2.12 Design to be re-entrant

Design all UEFI Drivers to manage multiple controllers. This requires that the controller specific information be managed in its own data structure. The practical manifestation of this requirement is that all the data that must be local to the instance (context) of the protocol must not be stored in global variables. Instead, collect data into a private context data structure so that each time an I/O protocol installs onto a handle, a new version of the structure is allocated from memory. This concept is described in detail in Chapter 8 of this guide.