What does Windows error code 200 (ERROR_RING2SEG_MUST_BE_MOVABLE) mean?

 
Could be also:
ConstantTypeOS
HTTP_STATUS_OKHTTP CodeAny
IRQL_UNEXPECTED_VALUEBugCheck CodeWindows
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

  1. Inspect the segment flags, privilege ring, and declared size together
  2. relink with the subsystem-recommended movable segment settings
  3. 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.