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