У вас есть проблемы с аппаратным обеспечением, поэтому лучшим решением будет разрешить его на аппаратном уровне. Но двигаться дальше.
Использование BIOS для обеспечения компьютера всегда начинается после цикла питания
У вас есть аппаратные средства для выполнения перезагрузки. Могли бы вы перенастроить, что так, что вместо того, чтобы делать жесткий цикл питания, когда компьютер работает, вы:
- уведомляют инструмент цикла питания аппаратного обеспечения,
- выполнить процедуру завершения работы, а затем
- мощность компьютера, на снова используя аппаратный переключатель питания?
Обычно существует установка биоса, которая позволяет указать действие после силового цикла, например.
- Оставьте компьютер выключенным,
- Включите его,
- Включите его только если он был включен, когда власть была потеряна.
Если вы можете это сделать, вы все равно можете выполнить упорядоченное завершение работы и дождаться завершения этого процесса, прежде чем снова включить питание.
Software Решение: Выключите кэширование записи на диск
Это не совсем ясно, что вызывает проблему, но следующий, кажется уместным.
Скорее всего, это результат кэширования записи на диске либо с помощью оборудования контроллера диска, либо операционной системы.
Вы можете отключить это с помощью инструмента управления дисками:
Software Solution: Флеш диск программно
В качестве альтернативы, вы можете быть в состоянии для программной очистки флеш-диска.Этот инструмент может помочь:
Или действительно с помощью WMI и PowerShell:
Почему вы думаете, это имеет значение? Какую * актуальную * проблему вы пытаетесь решить? Сама ОС позаботится об этом и гарантирует, что события всегда сохраняются ** предполагая **, что вы использовали правильные функции. Отправьте свой код –
BTW, если ваше приложение вызывает ненормальное завершение работы, вы должны исправить приложение. Это может быть потеряно не только ваше сообщение о событии - вы также потеряете данные, может привести к повреждению несохраненных или частично сохраненных файлов. –
«Актуальная» проблема связана с оборудованием. Система содержит настраиваемые платы, которые работают неправильно, и требуют разрешения питания. Правильное решение заключается в том, чтобы исправить аппаратное обеспечение, но это выходит за рамки моей компетенции. Тот же источник питания также включает встроенный SBC для Windows. Функция api для Windows ReportEvent используется для записи в журнал событий, и сообщение COM-порта отправляется на источник питания, чтобы рассказать об этом. – adnan