Skip to content

fix: harden Ext2Mgr mount assigns and Ext2Srv pipe accept - #102

Open
Obsidian-Jackal wants to merge 10 commits into
bobranten:masterfrom
Obsidian-Jackal:master
Open

fix: harden Ext2Mgr mount assigns and Ext2Srv pipe accept#102
Obsidian-Jackal wants to merge 10 commits into
bobranten:masterfrom
Obsidian-Jackal:master

Conversation

@Obsidian-Jackal

Copy link
Copy Markdown

Summary

  • Fix Ext2Mgr Session Manager / DOS letter assigns crashing on non-EXT volumes (MountPoints.cpp: return after registry success; skip null EVP Ext2 property path).
  • Speed Ext2Srv named-pipe accept: dual idle listeners, softer create retries, drop FILE_FLAG_WRITE_THROUGH.
  • Document classic-stack notes in Ext2Mgr/IMPROVEMENTS.md and update root README.md; drop unused January .gitignore entries for docs/ and Ext4Fsd.sln.

Test plan

  • Rebuild Ext2Mgr; assign a Session Manager letter to an NTFS/FAT partition (no crash).
  • Rebuild/reinstall Ext2Srv; confirm temporary EXT letter ops via the pipe still work and reconnect is snappy.
  • Skim Ext2Mgr/IMPROVEMENTS.md / README changelog bullets for accuracy.

Obsidian-Jackal and others added 9 commits January 27, 2026 20:23
Interactive services (SERVICE_INTERACTIVE_PROCESS) have been deprecated
since Windows Vista. While the service still works with this flag on many
systems, it can cause issues in some setups where Session 0 isolation
prevents named pipes from being accessible to user applications.

This change removes the deprecated flag to follow modern Windows best
practices and prevent potential compatibility issues, even though the
service continues to function without it.

Also update Visual Studio project files (Ext4Fsd.vcxproj, Ext2Mgr.vcxproj)
for better compatibility with Visual Studio 2019/2022.
Add PowerShell scripts for building, installing, signing, and diagnosing
the Ext4Fsd driver:

- build.ps1: Build driver, Ext2Srv, Ext2Mgr with optional signing
- install_driver.ps1: Copy driver to System32 and register services
- uninstall_driver.ps1: Remove driver and services
- register_driver.ps1: Register kernel driver service
- disable_driver.ps1: Disable Ext2Fsd service
- sign_driver.ps1: Sign driver with code-signing certificate
- install_certificate.ps1: Install signing certificate to Trusted Publishers
- diagnose_ext2fsd.ps1: Unified diagnostic for signature, cert stores, event log
- check_driver_load_error.ps1, diagnose_error_577.ps1, verify_driver_signature.ps1:
  Wrapper scripts for common diagnostic scenarios
- fix_sdk_version.ps1: Update project files' WindowsTargetPlatformVersion

All scripts are designed to be run from the repository root.
…device-removal

Fix system hang on USB/removable device removal
Bring in driver reliability fixes (USB surprise-remove timeouts),
CcCopyRead wait corrections, Ext2Mgr DPI/mountmgr.h, and related
cleanup while retaining fork SpectreMitigation and WDK include helper.
Prevent Ext2Mgr Session Manager assigns from crashing on non-EXT volumes
(MountPoints.cpp). Speed Ext2Srv named-pipe accept with dual idle
listeners, softer create retries, and no WRITE_THROUGH. Document those
changes in Ext2Mgr/IMPROVEMENTS.md and the root README. Drop the January
.gitignore entries for docs/ and Ext4Fsd.sln.
Bump FileVersion/ProductVersion to match the Ext2Srv fixes already on
this branch (interactive service flag removal and named-pipe accept
hardening).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants