none
Physical storport miniport and hibernation RRS feed

  • Question

  • Hi,

    I'm developing a physical storport miniport driver. I'm able to install Windows 8 on my storage device, but I have problems implementing hibernation (and crash dump).

    When I force hibernation, the screen goes black, but my driver doesn't receive any power request (no reset lun, no ScsiStopAdapter). There are lots of SRB_FUNCTION_EXECUTE_SCSI requests, and if I move the mouse or press a key, the system is immediately up, as if nothing happened. The event viewer says that "the system could not load the crash dump driver."

    I get the SRB_FUNCTION_DUMP_POINTERS, and I even tried to set the proper driver name in the structure (according to http://www.osronline.com/showthread.cfm?link=179238). No luck.

    Did anyone have a similar problem? Is there something at driver initialization which is necessary to support hibernation? Are there any documents describing the hibernation flow in storport miniport (I feel as if I searched the whole internet, but maybe I missed something)?

    I would appreciate any hint.

    Thanks!

    Monday, July 15, 2013 8:50 PM

Answers

All replies

  • Hi,

    To support dump stack, please refer to http://msdn.microsoft.com/en-us/library/ff564084.aspx for the restrictions in boot/dump environment.

    You may also want to read http://msdn.microsoft.com/en-us/library/windows/hardware/ff562247(v=vs.85).aspx as it describes the requirement for physical miniports.

    Regards,

    Michael Xing[MSFT]

    Monday, July 15, 2013 11:00 PM
  • Hi Michael,

    Thanks for your reply, but unfortunately, the links you supplied don't help me. They concern a situation when the driver is already in dump mode. The problem with my driver is that it doesn't even get to hibernation.

    When I force hibernation, the driver gets SRB_FUNCTION_DUMP_POINTERS request. I set the Size, Version and MiniportPrivateDumpData fields of the associated MINIPORT_DUMP_POINTERS and complete the request with success in the BuildIo callback. Is this the correct way of handling the request? After the request is completed, there is no attempt to unload my driver. There are lots of SRB_FUNCTION_EXECUTE_SCSI reads and writes and the system doesn't enter hibernation.

    To those who successfully implemented hibernation in their storport miniport - do you support ScsiStopAdapter or rather the SRB_FUNCTION_POWER? What kind of requests do you get upon hibernation? If I knew the flow, maybe I could figure out what parameter to set somewhere to get the same requests.

    Thanks!

    Wednesday, July 17, 2013 9:04 PM