EFI Image
Version 1.02 12/12/00 115
EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
EFI_HANDLE_PROTOCOL HandleProtocol;
EFI_HANDLE_PROTOCOL PCHandleProtocol;
EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
EFI_LOCATE_HANDLE LocateHandle;
EFI_LOCATE_DEVICE_PATH LocateDevicePath;
EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
//
// Image Services
//
EFI_IMAGE_LOAD LoadImage;
EFI_IMAGE_START StartImage;
EFI_EXIT Exit;
EFI_IMAGE_UNLOAD UnloadImage;
EFI_EXIT_BOOT_SERVICES ExitBootServices;
//
// Miscellaneous Services
....// See note about InstallConfigurationTable() under Protocol Handler
....// Services above.
//
EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
EFI_STALL Stall;
EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
} EFI_BOOT_SERVICES;
4.5.1.1 IA-32 Handoff State

When an IA-32 EFI OS is loaded, the system firmware hands off control to the OS in flat 32-bit

mode. All descriptors are set to their 4 GB limits so that all of memory is accessible from all

segments. The address of the IDT is not defined and thus it cannot be manipulated directly during

boot services.

Figure 4-1 shows the stack after ImageEntryPoint has been called on IA-32 systems.

EFI_SYSTEM_TABLE *
EFI_HANDLE

Stack

ESP + 8
ESP + 4

Location

<return address> ESP
Figure 4-1. Stack after ImageEntryPoint Called, IA-32