There are several undocumented functions in creating memory dumps.
One is the "mini-dump" generated file - where the STOP error is 0x1000007E for example - the 1 indicating that it is a mini-dump (this was figured out through anecdotal information - so it may not be entirely accurate). I have no clue as to how this relates to saving the dump.
The other is when wininit.exe launches WerFault.exe -k -c (-c is to create a minidump). This implies that there's a larger dump that needs a size reduction - otherwise the system can simply go to the C:\Windows\Minidump directory and pickup the latest one.
It's been my impression over the years that the system generates the complete memory dump (actually dumps the full contents of memory to the pagefile (or other designated location), and then the system decides to create a mini-dump from it. Most references to mini-dumps indicate that they are extracted from larger dumps. I have seen no references that indicate that they may have been created alone.
I haven't seen this (nor have I looked for it) since the XP days, so that behavior may have changed.
It would be interesting to investigate this behavior (and the 0x1xxxxxxx STOP errors) to see if it does have an impact on how the dumps are created
Again, AFAIK, in the event of an ungraceful crash, the system checksum's the components involved in capturing the crash.
If the checksum doesn't match the one made at boot, then the system discards the dump (presuming it's corrupted).
This second checksum occurs after the reboot, so the actual "dump" has been completed - but it hasn't been converted/compiled/whatever the process is to make it into a file with the .dmp extension.
Then, recently, there have been changes in the way that the type of memory dumps have been selected.
Now there's an "auto" setting in the registry that lets the system decide what kind of dump to collect (
Windows 8 and Windows Server 2012: Automatic Memory Dump - Ask the Core Team - Site Home - TechNet Blogs)
This implies (IMO) that the system is able to select (at that early stage) what type dump is needed.
It still sorta implies (IMO) that the system takes a complete dump of memory and then converts it into what's needed
Again, I'll need to investigate the creation of the C:\Windows\MEMORY.dmp file and it's relation to any mini-dumps that are created.
Also, changes to the CrashControl key in the registry won't necessarily be reflected in the sysdm.cpl applet that you adjust the settings in
(ref:
Understanding Crash Dump Files - Ask the Performance Team - Site Home - TechNet Blogs )
Finally, it seems to me that the system would have to generate the complete dump of memory during a crash as there just isn't time to select different types of data during the crash and then collect the dump of the memory.
Once the system reboots, then it has time to "massage" the data - and create the requested dump files.
This mechanism is still a bit unclear. I've compiled traces of system boots w/Sysinternal's Procmon utility (that's how I'm trying to figure out how the MachineCrash key gets deleted) - but haven't done it with a system that's BSOD'ing.
If I get one at work soon, I'll try to log the boot of a system after it BSOD's (this'll be difficult, as I'll have to have a system that reliably/predictably BSOD's).
I still have to wonder about the relationship between the MEMORY.dmp file and the files stored in the Minidump folder.