Skip to content

[UDFS] Fix driver load failure on Windows XP / POSReady 2009#62

Open
Copilot wants to merge 5 commits into
udf-devfrom
copilot/fix-udfs-loading-issue
Open

[UDFS] Fix driver load failure on Windows XP / POSReady 2009#62
Copilot wants to merge 5 commits into
udf-devfrom
copilot/fix-udfs-loading-issue

Conversation

Copy link
Copy Markdown

Copilot AI commented Feb 21, 2026

UDFS fails to load on Windows XP because KeAreAllApcsDisabled (introduced in WS03 SP1) is not exported by XP's ntoskrnl — the PE loader aborts before DriverEntry runs.

Changes

  • misc.cpp: Replace KeAreAllApcsDisabled() with KeGetCurrentIrql() >= APC_LEVEL — the standard FS driver idiom, available on all NT versions.

  • udfinit.cpp: Make FsRtlRegisterFileSystemFilterCallbacks failure non-fatal. Driver functions without the pre-acquire section synchronization callback.

  • udffs.h: Zero POOL_NX_ALLOCATION (Win8+ flag, 0x200) in the __REACTOS__ compat block alongside existing NonPagedPoolNx/MdlMappingNoExecute downgrades. OR-ing it into lookaside list pool types produces an invalid type on XP-era kernels.

Original prompt

This section details on the original issue you should resolve

<issue_title>[UDFS] It is having trouble loading under Windows XP</issue_title>
<issue_description>It is having trouble loading under Windows XP. I get the following error in Event Viewer:

The following boot-start or system-start driver(s) failed to load: 
Udfs
```</issue_description>

## Comments on the Issue (you are @copilot in this section)

<comments>
</comments>


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI requested a review from Zero3K20 February 21, 2026 04:53
Copilot stopped work on behalf of Zero3K20 due to an error February 21, 2026 04:53
Copilot AI changed the title [WIP] Fix UDFS loading issue under Windows XP [UDFS] Fix driver load failure on Windows Embedded POSReady 2009 Feb 21, 2026
Copilot AI changed the title [UDFS] Fix driver load failure on Windows Embedded POSReady 2009 [UDFS] Fix driver load failure on Windows XP / POSReady 2009 Feb 21, 2026
@Zero3K20 Zero3K20 force-pushed the copilot/fix-udfs-loading-issue branch 4 times, most recently from 9c87325 to 0534777 Compare February 21, 2026 06:32
Simplify APC check to KeGetCurrentIrql() >= APC_LEVEL

Co-Authored-By: Zero3K20 <258969903+Zero3K20@users.noreply.github.com>
@Zero3K20 Zero3K20 force-pushed the copilot/fix-udfs-loading-issue branch from 0534777 to 286d75f Compare February 21, 2026 06:33
@Zero3K20 Zero3K20 marked this pull request as ready for review February 22, 2026 21:31
@Zero3K20
Copy link
Copy Markdown
Owner

@copilot Please fix the conflicts.

- misc.cpp: Replace KeAreAllApcsDisabled() (WS03SP1+) with KeGetCurrentIrql() >= APC_LEVEL
- udfinit.cpp: Make FsRtlRegisterFileSystemFilterCallbacks failure non-fatal
- udffs.h: Zero POOL_NX_ALLOCATION (Win8+ flag) in ReactOS compat block

Co-authored-by: Zero3K20 <258969903+Zero3K20@users.noreply.github.com>
Copy link
Copy Markdown
Author

Copilot AI commented Apr 27, 2026

@copilot Please fix the conflicts.

Fixed in 678dcd4. Merged udf-dev into the branch (resolving conflicts in cleanup.cpp, close.cpp, create.cpp, fileinfo.cpp, flush.cpp, misc.cpp, prefxsup.cpp, protos.h, strucsup.cpp, struct.h, udf_info.cpp, udf_info.h, udffs.h, and write.cpp by accepting the udf-dev version), then re-applied the three XP compatibility fixes on top.

@Zero3K20 Zero3K20 deleted the branch udf-dev April 27, 2026 05:40
@Zero3K20 Zero3K20 closed this Apr 27, 2026
@Zero3K20 Zero3K20 reopened this Apr 27, 2026
Copilot AI added a commit that referenced this pull request May 1, 2026
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.

3 participants