Copy Engine
Size-first dispatch with zero-alloc micro copies, raw P/Invoke I/O, an overlapped ring pipeline for large files, eight hash algorithms, VSS locked-file support, and an optional Defender exclusion.
Size-First Dispatch
Brutal Copy's engine categorises every file by size before choosing the optimal copy path. Each tier gets purpose-built handling:
| Tier | Size Range | Optimisation |
|---|---|---|
| Zero | 0 bytes | Instant empty-file creation, no I/O |
| Micro | 1 – 85 KB | Stack-allocated buffer, raw Windows API handles, zero heap allocation |
| Small | 85 KB – 4 MB | Thread-local buffer pool, synchronous I/O |
| Large | 4 MB+ | Overlapped (async) I/O ring pipeline |
On fast local storage, files over ~128 MB are copied unbuffered with ordered ring writes that bypass the system file cache — so “done” means the data is physically on disk, not sitting in RAM.
Copy Strategies
The copy engine uses semaphore-based thread pooling with configurable concurrency. Key capabilities:
- Overlapped I/O ring — async read/write pipeline keeps large copies saturating the drive.
- Multi-destination — read once, write to many targets simultaneously.
- Inline hashing — BLAKE3, CRC32, CRC32C, MD5, SHA-1, SHA-256, SHA-384, SHA-512, or a no-hash fast path.
- VSS snapshot support — copy locked / in-use files via Volume Shadow Copy (an elevated helper handles the snapshot).
- Recovery checkpoints — periodic crash-resilient checkpoint files let a long copy resume after an unexpected exit.
- Defender exclusion — an optional process exclusion removes the real-time-scan tax on small-file workloads.
- System-friendly mode — throttles in-flight writes so the rest of the machine stays responsive during a big transfer.
Performance Options
Configure copy behaviour in Settings > Copy Engine:
- Thread count — adjust parallel copy threads, or leave Auto to pick a count from the destination drive type.
- Hash verification — choose one of eight algorithms (plus None) for inline or post-copy verification.
- Conflict policy — set the default same-name resolution mode.
- Recovery mode — enable periodic checkpoints for crash resilience.
- Verify micros on disk — re-read tiny files after writing to confirm they landed.
- Copy locked files — fall back to a VSS snapshot when a file is in use.
Conflict Resolution
When a destination file already exists, Brutal Copy applies one of six conflict policies:
- Overwrite — always replace existing files, clearing read-only/hidden attributes if needed.
- Overwrite If Newer — only replace if the source file has a more recent UTC timestamp.
- Overwrite If Larger — only replace if the source file is larger than the destination.
- Rename — auto-rename the destination with a cached suffix pattern.
- Skip — keep existing files and do not copy.
- Ask — raise a dialog for each conflict, letting you decide per-file.
Set the default in Settings > Copy Engine (the “Same name” dropdown on the Copy tab mirrors it), or override from the CLI with the --conflict switch.
Long Path & NTFS Support
All I/O operations automatically extend paths beyond the 260-character Windows limit using the \\?\ prefix. Directory creation, file reads, and file writes all handle extended-length paths transparently.
The engine also preserves advanced NTFS features during copy:
- Alternate Data Streams (ADS) — copy and preserve NTFS metadata streams.
- Sparse Files — detect and preserve sparse file structure.
- NTFS Compression — preserve compression flags on files and folders.
- Symbolic Links & Junctions — copy or recreate symlinks and junction points.
- Timestamps & Attributes — preserve creation/modified times and file attributes.