How ipxe/wimboot works
wimboot is a Windows Imaging Format bootloader that stages WinPE files and transfers control to Windows boot code, supporting BIOS and UEFI boot environments. Its main workflow is documented as loading a WIM directly, exposing boot files through a virtual disk, and launching the Windows boot manager; iPXE can provide network boot over HTTP. The graph preserves WIM handling, decompression, patching, disk emulation, PE loading, and firmware support. Source excerpts are partial, so unverified implementation links are dashed rather than asserted as calls.
Main entry points: main.c Boot entry · efimain.c UEFI boot support · wim.c WIM parser · peloader.c PE loader
Components 22
Boot orchestration
- Boot entry
src/main.c - Command line
src/cmdline.c - Boot application ABI
src/bootapp.h - PE loader
src/peloader.c - Memory paging
src/paging.c - Memory map
src/memmap.c
WIM processing
- WIM file access
src/wimfile.h - WIM parser
src/wim.c - LZX decompression
src/lzx.c - Huffman decoding
src/huffman.c - LZNT1 decompression
src/lznt1.c - XCA resources
src/xca.c - WIM patching
src/wimpatch.c
Virtual boot media
- Virtual FAT disk
src/vdisk.c - BIOS disk access
src/int13.c
Firmware support
- UEFI boot support
src/efimain.c - UEFI file and block I/O
src/efifile.c - UEFI interfaces
src/efi/Uefi - UEFI device paths
src/efi/Protocol/DevicePath.h - EFI image format
src/efi/IndustryStandard/PeImage.h - UEFI block device
src/efiblock.c
Other components
- iPXE / operator
Connections 23
- iPXE / operator → Boot entry: starts boot
- Boot entry → Virtual FAT disk: adds boot files
src/main.c - Boot entry → PE loader: loads executable
- Boot entry → Boot application ABI: passes boot ABI
- Boot entry → Command line: reads options
- Boot entry → WIM parser: opens WIM
- Boot entry → WIM patching: patches boot image
- Boot entry → LZNT1 decompression: decompresses image
- Boot entry → Memory paging: configures paging
- Boot entry → Memory map: uses memory map
- Boot entry → BIOS disk access: handles BIOS disk
- WIM parser → LZX decompression: uses decompressor
- LZX decompression → Huffman decoding: uses decoding
- WIM parser → XCA resources: reads resources
- WIM parser → WIM file access: reads files
- WIM patching → Virtual FAT disk: patches virtual files
- UEFI boot support → UEFI file and block I/O: uses firmware I/O
- UEFI boot support → UEFI interfaces: uses UEFI interfaces
- UEFI boot support → UEFI block device: exposes block device
- UEFI boot support → UEFI device paths: uses device paths
- PE loader → EFI image format: loads PE images
- Boot entry → UEFI boot support: supports UEFI boot
- Boot entry → BIOS disk access: supports BIOS boot