Crash dump not happening with eMMC

Hi All,

I am new to windows driver and currently trying to debug a crash dump issue. Whenever there is a crash i am not able to get the crash dump.

I gone through some post regarding the crash dump but could not get any success.
Details of the code and the debugging i have done:

In the driverEntry, enabled the flag featureSupport in the structure HW_INITIALIZATION_DATA with STOR_FEATURE_DUMP_POINTERS.

In the funtion HwFindAdapter(), when i checked the parameters of the structure “PPORT_CONFIGURATION_INFORMATION” i.e MiniportDumpData, DumpMode it comes to be NULL and Zero respectively.

In the function HwStorStartIo, for the case SRB_FUNCTION_DUMP_POINTERS , in the structure MINIPORT_DUMP_POINTERS when i checked the parameter “DriverName” this is also coming as 0.

Please help me what could have gone wrong, also it would be helpful if i can get any documentation for the same. I have gone through
https://msdn.microsoft.com/en-in/library/windows/hardware/ff557459(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff563901(v=vs.85).aspx

Thanks for your time and support in advance.

In the driverEntry, enabled the flag featureSupport in the structure
<< HW_INITIALIZATION_DATA with STOR_FEATURE_DUMP_POINTERS.

I am assuming you are setting this flag when the driver runs in the regular context (non-dump). Also, based on the fact that you are setting this flag, is it fair to assume that you are working on a physical miniport driver?

<< In the funtion HwFindAdapter(), when i checked the parameters of the structure
<< “PPORT_CONFIGURATION_INFORMATION” i.e MiniportDumpData, DumpMode it comes to be
<< NULL and Zero respective
<< In the function HwStorStartIo, for the case SRB_FUNCTION_DUMP_POINTERS , in the
<< structure MINIPORT_DUMP_POINTERS when i checked the parameter “DriverName” this
<< is also coming as 0.

Are you expecting the MINIPORT_DUMP_POINTERS to contian a valid DriverName when SRB_FUNTION_DUMP_POINTERS is called? If yes, that is not the way it works. You are supposed to fill this up when called, so that you can provide the name of the driver which will be invoked when a crash occurs. Similarly, all other fields in the structure are supposed to be filled up by your miniport driver. These values will be used when the crash-dump driver is loaded and the pointer provided as part MiniportPrivateDumpData will be passed in the PORT_CONFIG_INFORMATION.MiniportDumpData member when the crash dump driver loads.

  • Girish