| Previous | Next |
| INPUT_E_FRAME | INPUT_E_DEVICE_INFO |
INPUT_E_HISTORY
INPUT_E_HISTORY belongs to pointer packet, frame, and history validation. A sequence of pointer frames is internally inconsistent across time.
Locate the first rejecting layer
Windows validates input at several nested levels. A packet describes one pointer observation, a frame groups simultaneous observations, and history links frames over time. The diagnostic task is to locate the first level at which identity, flags, timing, device information, or lifecycle becomes inconsistent; repairing only the last packet can leave an invalid frame or history chain unchanged.
history validation spans frame boundaries. Pointer identity, type, source device, frame IDs, timestamps, and DOWN/UPDATE/UP lifecycle must remain coherent throughout the sequence.
Evidence to preserve
- All frames in original order, not only the final frame
- Per-pointer lifecycle timeline and source device
- Frame IDs and timestamps before and after coalescing
- History retrieval counts and buffer sizing results
Controlled reproduction
Capture the submitted structures before Windows modifies counts or output buffers. Reduce the sequence from history to one frame and then to one packet while preserving the original pointer IDs, flags, and time base so the level that first fails remains observable.
- replay one pointer history without coalescing.
- Add coalesced frames in documented chronological order.
- Confirm that frame IDs are unique and timestamps do not regress.
- Verify that a pointer does not change type or device before its lifetime ends.
Misleading responses
INPUT_E_OUT_OF_ORDER is limited to nonchronological data; it also covers duplicate frame IDs and identity changes even when timestamps increase. Do not discard intermediate history to make the latest point work. That can break gesture velocity, handwriting, and cancellation semantics.
Technical references
Looking for a different code? Search another status or error code.
