Я не знаю, возможно ли это вообще, но есть ли способ программно обнаружить, что BSOD только что произошел при перезагрузке сразу после BSOD?
BSOD может быть по любой причине или по всем причинам, не имеет значения. Я знаю, что вы можете проверить наличие файла дампа, но если пользователь отключит эту настройку, то никакого дампа не будет. Они также могут изменить путь, по которому они хотят получить файлы дампа, что делает его ненадежным для обнаружения.
Любая и / или все версии Windows были бы хороши. Было бы неплохо, если бы я мог проверить таким же образом на каждой ОС, но если это должно быть для конкретной ОС, я думаю, что это будет хорошо.
Да, вы можете получить доступ к журналам событий из C ++.
Служба EventLog будет регистрировать конкретное событие 6008 после неожиданного завершения работы. Кроме того, вы увидите событие 6006, зарегистрированное при успешном завершении работы, и 6009 и 6005 при запуске.
Других решений пока нет …