Format Overview
WIM provides:- File-based imaging - Unlike sector-based formats, stores files individually
- Single-instance storage - Identical files stored once across images
- Multiple images - One WIM can contain multiple OS images
- Compression - XPRESS, LZX, and LZMA compression
- Solid compression - ESD variant with solid LZMS compression
- Hardware independence - Not tied to specific hardware
- Non-destructive mounting - Can mount images without extraction
WIM is primarily used for Windows deployment (install.wim, boot.wim) and system backup/restore operations.
Format Structure
Fromsource/CPP/7zip/Archive/Wim/WimIn.h:23-33, WIM has evolved through several versions:
Version History
File Structure
Directory Entry Structure
FromWimIn.h:35-131, WIM stores detailed file metadata:
Modern Directory Entry (WIM 1.13+)
Old Directory Entry (WIM 1.10)
Resource Flags
FromWimIn.h:134-141:
Solid compression (kSolid flag) is used in ESD (Electronic Software Distribution) files for maximum compression, introduced in Windows 8.1.
Compression Methods
WIM supports multiple compression methods:Standard Compression
-
None (Store) - No compression
- Fast creation and extraction
- Largest file size
-
XPRESS - Fast compression
- LZ77-based algorithm
- Good speed, moderate compression
- Default for many WIM images
-
LZX - Better compression
- LZ77 + Huffman coding
- Better ratio than XPRESS
- Used in install.wim
-
LZMA - Best compression (WIM 1.13+)
- LZMA algorithm
- Excellent compression ratio
- Slower than XPRESS/LZX
Solid Compression (ESD)
- LZMS - Solid compression (WIM 0.14+)
- Used in .esd files
- Maximum compression ratio
- Significantly slower
- Requires Windows 8.1+ or DISM
WimIn.h:14-16):
Usage Examples
List WIM Contents
Extract WIM Image
Extract Specific Image
View WIM Information
- Number of images
- Compression method
- Image names and descriptions
- File counts and sizes
Create WIM Archive
Handler Implementation
Fromsource/CPP/7zip/Archive/Wim/WimHandler.h:15-23:
Handler State
Multiple Images
WIM files can contain multiple OS images:Single-Instance Storage
WIM uses SHA-1 hashing to detect duplicate files:- Files with identical SHA-1 hash stored only once
- Dramatically reduces size for multiple similar images
- Example: 5 Windows editions sharing system files
Split WIM Files
Large WIM files can be split into parts:install.swminstall2.swminstall3.swm
7-Zip can extract from split WIM (SWM) files by opening the first file.
ESD Format
ESD (Electronic Software Distribution) is a WIM variant with solid LZMS compression:- Much smaller than WIM (~30-40% smaller)
- Slower extraction
- Used for Windows 10+ downloads
- Requires Windows 8.1+ DISM or 7-Zip for extraction
Advanced Features
Boot Configuration
FromWimHandler.h:26:
Security Descriptors
Alternate Data Streams
Reparse Points
Comparison with Other Formats
WIM vs ISO
WIM vs VHD/VHDX
Use Cases
Windows Installation
System Backup
Extract Drivers
View Windows Edition
Implementation Files
WIM handler implementation:Limitations
Best Practices
For Deployment
Use LZX compression for balanced speed and size
For Distribution
Use LZMS (ESD) for minimum download size
For Backup
Use XPRESS for faster backup/restore
For Multiple Editions
Leverage single-instance storage in one WIM