| Previous | Next |
| INPUT_E_PACKET | INPUT_E_HISTORY |
INPUT_E_FRAME
The scope of INPUT_E_FRAME is pointer packet, frame, and history validation. Packets grouped into one frame disagree about identity, timing, pointer type, source device, or frame membership. Keep 0x80400004 beside the returning method because a wrapper can replace this distinction with a generic subsystem message.
Where the failure occurs
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.
A frame represents a simultaneous input snapshot. Pointer IDs must be unique within it and the metadata used to define that snapshot must be coherent across every packet.
Avoid broad resets
INPUT_E_PACKET identifies a malformed member, while this result can be returned even when each packet looks valid in isolation but the set is contradictory. Do not deduplicate by keeping an arbitrary packet; choose the packet that matches the pointer lifecycle and preserve evidence of why the duplicate was produced.
Evidence to preserve
- Ordered list of every packet in the rejected frame
- Duplicate pointer IDs and their lifecycle state
- Frame ID and timestamp from each packet
- Pointer type, source device, and coordinate transform for each member
Smallest faithful reproducer
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.
- Construct a frame with one valid pointer and then add members one at a time.
- Ensure each active pointer appears at most once in the frame.
- Use one frame ID and one coherent time value for the snapshot.
- Keep packets from different source devices in separate frames unless the API explicitly supports combining them.
Technical references
Looking for a different code? Search another status or error code.