Взаимодействие со встроенным программным обеспечением аппаратной платформы (efi_api.h)

12 января 2026

ID libkos_efi_api

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

API обеспечивает возможность использовать функции встроенного программного обеспечения (англ. firmware) аппаратной платформы, доступные через интерфейс UEFI после загрузки KasperskyOS. (Об этих функциях см. раздел "Services – Runtime Services" спецификации UEFI.)

Поведение функций интерфейса UEFI на конкретной аппаратуре соответствует спецификации UEFI в той степени, в какой это определил разработчик этой аппаратуры.

Сведения о соответствии кодов возврата функций API и кодов возврата функций встроенного программного обеспечения аппаратной платформы приведены в заголовочном файле efi_api.h.

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

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

Начальным шагом является вызов функции EfiApiInit(), которая создает подключение вызывающего процесса к службе ядра, обеспечивающей взаимодействие со встроенным программным обеспечением через интерфейс UEFI.

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

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

Чтобы перезагрузить аппаратную платформу, нужно вызвать функцию KnEfiResetSystem().

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

Чтобы получить значение переменной UEFI, нужно вызвать функцию KnEfiGetVariable().

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

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

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

Функции efi_api.h

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