Устройство холодной загрузки Windows Mobile 6.5 программно с использованием C # - PullRequest
3 голосов
/ 05 ноября 2011

Я видел много кода относительно IOCTL, и я попытался использовать некоторый код, который показывает, как выполнить холодную загрузку устройства Windows Mobile, установив SetCleanRebootFlag() и int IOCTL_HAL_REBOOT = 0x101003C;, но он не сбрасывает счетчик загрузки в HKLM \ Comm \ BootCount, и это быстрый способ проверить холодную загрузку (нужно сбросить на '0'). Может кто-нибудь показать мне код для «холодной загрузки»? Я ссылаюсь на код, который использовал здесь: Программная перезагрузка устройства Windows Mobile 6.x с использованием C #

С уважением, Скотт

1 Ответ

4 голосов
/ 08 ноября 2011

Этот счетчик не сбрасывается в ноль на устройствах с постоянным реестром (большинство устройств Windows Mobile , поскольку WM5 имеет это ).У вашего устройства есть такой?

Ваш ЦП может иметь регистр состояния, указывающий причину последней перезагрузки.Вы можете попробовать это проверить.Кроме того, ваш OEM-производитель мог предоставить IOCTL для той же цели.

Чистый реестр требует «чистой загрузки».Не существует стандартного способа выполнения чистой загрузки на устройствах Windows Mobile.Для этого вам необходимо обратиться к документации, предоставленной OEM.

Если вы просто хотите перезагрузить устройство, я использую SetSystemPowerState :

::SetSystemPowerState( NULL, POWER_STATE_RESET, POWER_FORCE );

-PaulH

...