AdapterControl and ControllerControl routines are run in an arbitrary thread context at IRQL DISPATCH_LEVEL.
Running at IRQL DISPATCH_LEVEL restricts the set of support routines an AdapterControl or ControllerControl routine can call.
For more information about managing IRQLs in NT drivers, see Chapter 16. For specific information about the IRQL(s) at which any particular support routine can be called, see the Kernel-mode Driver Reference.