Loop over each class of system devices, and the devices in each of those classes. For each device, we call the shutdown method for each driver registered for the device - the globals, the auxillaries, and the class driver.
The list is iterated in reverse order, so that we shut down child devices before we shut down thier parents. The list ordering is guaranteed by virtue of the fact that child devices are registered after their parents.