Can DriverEntry block or must it return immediately ?
Immediately.
MSDN: "The only driver routines that can safely wait on events, semaphores, mutexes, or timers are those that run in a nonarbitrary thread context at IRQL PASSIVE_LEVEL, such as driver-created threads, the DriverEntry and Reinitialize routines, or dispatch routines for inherently synchronous I/O operations (such as most device I/O control requests)."
So you _can_ block in DriverEntry, but i guess most drivers don't.
G.