During a crash dump, the system is running at HIGH_IRQL, with no interrupts, it can?t call any OS APIs (except a physical storage mini port can call only the miniport wrapper functions).you can?t call any other drivers (unless you own that driver and have made arrangement for it to have crash dump compatible function which you already know the address of).
The OS will not just magically make a full environment to write crash dumps in. One way to think of the environment is: imagine the OS was frozen at ANY moment, critical spin locks may be held, data structures may be half updated, hardware may be in any state. A crash dump driver is responsible for getting the storage driver that controls the crash dump file back to a state that functions well enough to very carefully make some writes.
If you driver is a virtual storport, that passes the actual I/O down to other device stacks, you are almost certainly not going to be able to write crash dump. I say almost certainly, because some years ago I worked on a set of drivers for virtual networking and virtual storage using Infiniband that had a virtual storport driver that was able to write crash dumps. It was only able to do this because we had control over all the drivers down to the hardware. It sounds like you’re hoping to just have a RAID layer that works with arbitrary storage devices. The hardware storport miniport support functions are carefully chosen to be things that work, or can be simulated, at crash dump time.
Jan
On Aug 21, 2014, at 12:26 AM, xxxxx@gmail.com wrote:
Thanks Eriksson for all the clarification !!
I got more question. Suppose we have Vminiport driver provides RAID functionality and we have boot Virtual-disk(VD) created across USB-disk, SATA-disk, PCIe-SSD/HDD. In this case when system will go to hibernation what will happen? Do OS will initialize full stack for all these three different devices (USB-disk, SATA-disk, PCIe-SSD/HDD) separately before dumping hiber file/dump file(In case of Crash dump). As we know create OS will creahe te different storage stack as per the boot-vd and Initialize those respective miniport drivers. I am curious to know do hibernation and crash dump scenario will work if we have such if we have boot VD on such heterogeneous interfaces and can VMiniport will able to manage this and solve this problem?
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer