Управление электропитанием (pm_api.h)

12 января 2026

ID libkos_pm_api

API определен в заголовочном файле sysroot-*-kos/include/coresrv/pm/pm_api.h из состава KasperskyOS SDK.

API позволяет изменять режим электропитания аппаратной платформы (например, выключать, перезагружать), а также включать и выключать процессоры (вычислительные ядра).

Сведения о функциях API приведены в таблице ниже.

Использование API

Чтобы выполнить запрос на изменение режима электропитания аппаратной платформы, нужно вызвать функцию KnPmRequest().

Функции KnPmSetCpusOnline() и KnPmGetCpusOnline() имеют параметр mask, через который передается маска процессоров. Маска процессоров – битовая маска, отражающая набор процессоров (вычислительных ядер). Флаг, установленный в i-ом бите, отражает, что процессор с индексом i входит в набор (нумерация начинается с нуля). Для работы с маской процессоров нужно использовать функции, определенные в заголовочном файле sysroot-*-kos/include/rtl/cpuset.h.

Чтобы включить и/или выключить процессоры, нужно вызвать функцию KnPmSetCpusOnline(), указав маску процессоров, отражающую требуемый набор активных процессоров. В этой маске должен быть установлен флаг, соответствующий процессору загрузки (англ. bootstrap processor), иначе функция завершится с ошибкой. Чтобы получить индекс процессора загрузки, нужно вызвать функцию KnPmGetBootstrapCpuNum().

Чтобы получить сведения о том, какие процессоры находятся в активном состоянии, нужно вызвать функцию KnPmGetCpusOnline(). Выходным параметром этой функции является маска процессоров, отражающая фактический набор активных процессоров.

Если функция KnPmSetCpusOnline() завершилась с ошибкой, это может привести к неопределенному изменению набора активных процессоров. Чтобы предпринять повторную попытку настроить набор активных процессоров, нужно получить сведения о том, какие процессоры находятся в активном состоянии, вызовом функции KnPmGetCpusOnline() и скорректировать на основе этих сведений требуемый набор активных процессоров при последующем вызове функции KnPmSetCpusOnline().

Сведения о функциях API

Функции pm_api.h

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!