| Previous | Next |
| ERROR_AUTODATASEG_EXCEEDS_64k | ERROR_RELOC_CHAIN_XEEDS_SEGLIM |
ERROR_RING2SEG_MUST_BE_MOVABLE
What ERROR_RING2SEG_MUST_BE_MOVABLE means
ERROR_RING2SEG_MUST_BE_MOVABLE is Win32 system error code associated with the documented message: “The code segment cannot be greater than or equal to 64K.” The significant condition is that a ring-2 legacy segment violates the loader’s requirements for movability or segment sizing.
Likely causes
- the segment was linked fixed when the subsystem requires it to be movable
- segment size or attributes cross a protected-mode compatibility limit
- a nonstandard linker emitted ring-2 metadata not accepted by Windows
Troubleshooting steps
- Inspect the segment flags, privilege ring, and declared size together
- relink with the subsystem-recommended movable segment settings
- Validate on the original supported platform or emulator
Code-specific investigation notes
Movability allows the compatibility memory manager to relocate a segment and update selectors according to the subsystem rules. A fixed ring-2 segment violates that contract.
Size and attribute diagnostics should be collected together because historical messages can summarize more than one invalid layout property.
Relinking with different segment flags is meaningful only when source and toolchain documentation confirm that the module was intended for this subsystem.
Difference from related errors
ERROR_INVALID_SEGDPL rejects an invalid privilege level; it adds a specific ring-2 segment-layout requirement.
References
Looking for a different code? Search another status or error code.