What does Windows error code 603 (ERROR_MARSHALL_OVERFLOW) mean?

 
Previous Next
ERROR_ALLOCATE_BUCKET ERROR_INVALID_VARIANT

ERROR_MARSHALL_OVERFLOW

What ERROR_MARSHALL_OVERFLOW means

Serialized parameters or results exceeded the capacity agreed across the boundary. Because marshalling defines a binary contract, truncating the payload would be unsafe and may invalidate offsets or embedded lengths.

Where it appears

  • device I/O control requests
  • RPC-like user/kernel communication
  • security, file-system, and management drivers returning variable data

Likely causes

  • caller supplied an undersized output buffer
  • producer miscalculated required length
  • structure version mismatch
  • untrusted count or length caused arithmetic overflow

What to collect

  1. input and output buffer lengths
  2. reported required size, if available
  3. structure version and architecture
  4. all offsets, counts, and integer-overflow checks

How to respond

Use a two-call sizing pattern when supported, cap allocations, and validate every embedded range before retrying. Kernel code must return the required size consistently and never copy partial structures that consumers may parse as complete.

Example

A management application requests a variable-length driver report with a fixed 4 KB output buffer. A new driver version returns more records. The application should obtain the required size, allocate within a defined maximum, and repeat the request while the driver validates all offsets.

References


Looking for a different code? Search another status or error code.