What is EfiBootServicesData?
Quick note explaining EfiBootServicesData for BIOS/UEFI and embedded firmware readers.
EfiBootServicesData is a UEFI memory-management concept used around memory maps, runtime mapping, and the OS handoff.
Why it matters
- Explains memory ownership around the firmware-to-OS transition.
- Helps debug ExitBootServices(), runtime mapping, and memory-type issues.
- Useful when reading UEFI memory maps.
Practical example
Example: ExitBootServices() can fail if the memory map changes after GetMemoryMap(). In that case, retrieve the map again and use the new key.
Quick checklist
Quick takeaway
EfiBootServicesData is about memory ownership during the handoff from firmware to the OS.
A debugging angle
I try not to treat EfiBootServicesData as a dictionary entry. I read it as part of a firmware path: who produces it, who consumes it, and what symptom appears when it is wrong. That habit makes the note useful during debugging, not only during study.
A small field example
Firmware memory bugs can appear far away from the code that caused them. With EfiBootServicesData, I would check ownership, lifetime, memory type, and whether the OS receives a consistent memory map before ExitBootServices().
In a real debugging session
Treat EfiBootServicesData as part of a boot chain, not as an isolated term: Boot Manager reads NVRAM → selects a boot option → parses the Device Path → opens the .efi file → transfers control to the loader. When a system boots the wrong target, the routing metadata is often guilty before the loader itself.
A practical check is to dump the boot variables, see which option the value points to, confirm that the option is active, and then inspect whether the embedded device path still matches the current disk and partition layout.
Related notes
- What is SetVirtualAddressMap?
- What is Memory Map Key?
- What is EfiRuntimeServicesData?
- What is EFI_MEMORY_TYPE?
- What is ConvertPointer?
Public references
- UEFI Specification 2.11 - Boot Manager
- UEFI Specification 2.11 - Boot Services / Memory
- UEFI Specification 2.11 - Runtime Services
- EDK II MdePkg UefiSpec.h
Found this useful?
Save it or share it with someone learning firmware, BIOS/UEFI, and embedded systems.
Biến note thành bài viết hoàn chỉnh
Notes là nơi ghi nhanh khái niệm.