Yuqun Cao, a Software Development Engineer on the Windows CE JDP team has written and published an article to MSDN called “BusEnum: Enabling Finer Control of Device Driver Loading”.

The title of the paper, while correct, doesn’t go far enough to describe what the paper is describing – the paper really discusses delay loading of drivers to improve boot times of devices.

Here’s the summary of the paper from Yugun: In this white paper, we present an enhanced version of the bus enumerator driver, also known as BusEnum, which gives better control over when a device driver will be loaded. Traditionally, the built-in drivers are loaded by BusEnum in a single thread. The enhanced BusEnum driver allows for deferred loading of some nonessential drivers by using a simple registry configuration. With this enhanced capability, the device can be up-and-ready for user interaction sooner, while the remaining drivers are being loaded in the background. This deferred loading feature can be used to speed up device boot time. It is especially effective if some drivers spend a long time in the driver Init() function. The enhanced BusEnum driver presented in this white paper has already been used on a production device to improve the device boot time.

- Mike