| 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
- input and output buffer lengths
- reported required size, if available
- structure version and architecture
- 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.