@Recardo_Recoly

Как выключить ПК средствами Си?

Как выключить ПК без использования библиотек виндовс и тд. (ос нет)
То есть есть программа которая загружается вместо виндовс (с флешки (если в биосе выбрать флешку загрузочной(не хак!))).
Показывает какие то данные и по нажатию enter она должна выключить ПК.
Нашел такой код но он перезагружает ПК (все что находил либо не работает либо перезагружает).
void stop()
{
     asm volatile("mov $0x5307, %ax; xor %bx, %bx; inc %bx; mov $3, %cx; int $0x15;");
}

Помогите пожалуйста.
  • Вопрос задан
  • 635 просмотров
Пригласить эксперта
Ответы на вопрос 3
Помните времена windows 98? "Теперь можно отключить питание компьютера"
Windows не могла отключить питание компьютера из-за отсутствия поддержки ACPI либо другого интерфейса управления питанием.
Команды "выключить компьютер" не существует, это происходит как раз таки через ACPI. Как он реализован - обращайтесь к документации производителя материнской платы и к спецификации ACPI (или APM, если плата очень старая).
Ответ написан
TrueBers
@TrueBers
Гуглю за еду
Так вы не находите код с бездумным копированием его в исходники, а разберитесь как он работает, какие бывают интерфейсы для управления питанием. Убедитесь, какие интерфейсы поддерживает ваша система, биос.

Гуглите APM power off, либо ACPI global state G2 (или sleep state S5).

Первый проще, но древний и не поддерживается уже практически, в пользу второго. Второй современнее, но очень сложный и более функциональный.

А у вас какой-то кусок из APM, выдранный непонятно откуда. Почему он по-вашему должен заработать?

Откройте исходники любой современной ОС, и посмотрите, как там сделано. Там всё порядком посложнее, чем просто 5 команд.
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
все что находил либо не работает
Так выключить компьютер — особая привилегия, не всякий её достоин.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы