Heute bin ich mal der Ursache auf den Grund gegangen, warum SpeedCommander bei einem Absturz .dmp-Dateien erzeugt, die nur 0 Byte groß sind und keine Informationen enthalten. Eigentlich hatte ich die Funktion ja vorher gestestet. Dann fand ich dieses:
// Dump erzeugen
HANDLE hDumpFile = CreateFile(szDumpFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_WRITE_THROUGH, NULL);
if (INVALID_HANDLE_VALUE != m_hReportFile)
{
....
}
Ziemlich dumm gelaufen. Das zeigt wieder einmal, dass man Funktionen nicht nach dem Testen optimieren sollte sondern vorher.

Das hätte ich besser für mich gehalten.