Plug-and-play hardware typically also requires some sort of ID code that it can supply, in order for the computer software to correctly identify it. The Plug-and-play ID can have two form: 3-byte manufacturer ID plus 2-byte hex number (e.g. PNP0A08), or 4-byte manufacturer ID plus 2-byte hex number (e.g. MSFT0101). In addition, a PnP device may have Class Code and Subsystem ID. This ID code system was not integrated into the early
Industry Standard Architecture (ISA) hardware common in PCs when Plug and Play was first introduced. ISA Plug and Play caused some of the greatest difficulties that made PnP initially very unreliable. This led to the derisive term "Plug and Pray", since
I/O addresses and
IRQ lines were often set incorrectly in the early days. Later
computer buses like
MCA,
EISA and
PCI (which was becoming the industry standard at that time) integrated this functionality. Finally, the
operating system of the computer needs to be able to handle these changes. Typically, this means looking for
interrupts from the bus saying that the configuration has changed, and then reading the information from the bus to locate what happened. Older bus designs often required the entire system to be read in order to locate these changes, which can be time-consuming for many devices. More modern designs use some sort of system to either reduce or eliminate this "hunt"; for example, USB uses a hub system for this purpose. When the change is located, the OS then examines the information in the device to figure out what it is. It then has to load up the appropriate
device drivers in order to make it work. In the past, this was an all-or-nothing affair, but modern operating systems often include the ability to find the proper driver on the
Internet and install it automatically. ==See also==