When processing a transaction the USB system allows for several methods of informing the driver of its completion. This allows either synchronous or asynchronous transaction processing. Hence a driver does not need to block waiting for a transaction to complete and other processing may be done.
The USB system provides several different waiting modes in order that a each driver writer does not need to implement them itself.