Skip to main content
WIM (Windows Imaging Format) is Microsoft’s file-based disk image format used for deploying Windows operating systems and capturing system images.

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

From source/CPP/7zip/Archive/Wim/WimIn.h:23-33, WIM has evolved through several versions:

Version History

File Structure

Directory Entry Structure

From WimIn.h:35-131, WIM stores detailed file metadata:

Modern Directory Entry (WIM 1.13+)

Old Directory Entry (WIM 1.10)

Older versions used a smaller 62-byte structure without SHA-1 hashes.

Resource Flags

From WimIn.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

  1. None (Store) - No compression
    • Fast creation and extraction
    • Largest file size
  2. XPRESS - Fast compression
    • LZ77-based algorithm
    • Good speed, moderate compression
    • Default for many WIM images
  3. LZX - Better compression
    • LZ77 + Huffman coding
    • Better ratio than XPRESS
    • Used in install.wim
  4. LZMA - Best compression (WIM 1.13+)
    • LZMA algorithm
    • Excellent compression ratio
    • Slower than XPRESS/LZX

Solid Compression (ESD)

  1. LZMS - Solid compression (WIM 0.14+)
    • Used in .esd files
    • Maximum compression ratio
    • Significantly slower
    • Requires Windows 8.1+ or DISM
From handler includes (WimIn.h:14-16):

Usage Examples

List WIM Contents

Shows all images and their contents.

Extract WIM Image

Extracts the default or first image.

Extract Specific Image

View WIM Information

Shows detailed information including:
  • Number of images
  • Compression method
  • Image names and descriptions
  • File counts and sizes

Create WIM Archive

7-Zip supports extracting WIM files but has limited WIM creation capabilities compared to Microsoft DISM tool. For advanced WIM operations, use DISM or ImageX.

Handler Implementation

From source/CPP/7zip/Archive/Wim/WimHandler.h:15-23:

Handler State

Multiple Images

WIM files can contain multiple OS images:
Each image shares common files (single-instance storage).

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:
Creates:
  • install.swm
  • install2.swm
  • install3.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:
ESD characteristics:
  • 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

From WimHandler.h:26:
WIM can specify which image is bootable (boot.wim).

Security Descriptors

WIM preserves Windows NTFS security descriptors.

Alternate Data Streams

WIM supports NTFS alternate data streams.

Reparse Points

Supports symbolic links, junctions, and mount 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

WIM format limitations:
  • Maximum image size: 4 GB per file (use split WIM for larger)
  • No native encryption (use BitLocker on mounted images)
  • Requires Windows or specialized tools
  • 7-Zip extraction only (limited creation)
  • Solid WIM (ESD) slower extraction

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

Tools

Microsoft DISM

7-Zip

ImageX (Legacy)

See Also