Внутреннее устройство на - edk.tianocore.org. Берутся исходники EDK и внимательно курятся. Они на С.
Далее дело техники... Функция инициализации у всех U/EFI модулей DXE выглядит так:
Указатель yна структуру SystemTable сохраняется в глобальной переменной gST. Далее из него по смещению "извлекаются" указатели на структуры EFI_BOOT_SERVICES и EFI_RUNTIME_SERVICES, которые сохраняются в глобальных переменных gBS и gRS. По смещениям через эти указатели производитсяя косвенный вызов всех стандартных (API) функций EFI. Далее по GUID-ам вылавливаются стандартные протоколы, а по протоколам восстанавливай структуры.
Внутреннее устройство на - edk.tianocore.org. Берутся исходники EDK и внимательно курятся. Они на С.
Далее дело техники... Функция инициализации у всех U/EFI модулей DXE выглядит так:
Указатель yна структуру SystemTable сохраняется в глобальной переменной gST. Далее из него по смещению "извлекаются" указатели на структуры EFI_BOOT_SERVICES и EFI_RUNTIME_SERVICES, которые сохраняются в глобальных переменных gBS и gRS. По смещениям через эти указатели производитсяя косвенный вызов всех стандартных (API) функций EFI. Далее по GUID-ам вылавливаются стандартные протоколы, а по протоколам восстанавливай структуры.