[nvmewin] Using StorPortAllocatePool in crashdump/hibernate context
Harris, James R
james.r.harris at intel.com
Wed Jun 6 15:01:57 PDT 2012
I noticed that there are a few places in crashdump/hibernate context where StorPortAllocatePool() is being called. NVMeInitialize(), when ntldrDump == FALSE, is where I saw a few of these calls, but there may be others.
WDK says this can only be called at <= DISPATCH, but crashdump/hibernate mode is all run at DIRQL. I've seen StorPortAllocatePool() hang during crash/hiber mode when testing other Storport drivers I've worked on in the past. It may be helpful to put an assert in the NVMeAllocatePool routine to check IRQL to work through this once the driver starts getting used more for boot testing.
This should probably be fixed to use space in the DeviceExtension - crash/hiber mode can request up to a ~60KB extension. If more space is needed, there are a couple of alternative methods (DumpRegion/RequestedDumpBufferSize, or global data buffers) to get more space, but fitting in the DeviceExtension is cleanest and least troublesome.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nvmewin