| Previous | Next |
| INPUT_E_HISTORY | INPUT_E_TRANSFORM |
INPUT_E_DEVICE_INFO
The scope of INPUT_E_DEVICE_INFO is pointer-device metadata and capabilities. Windows could not obtain the device metadata needed to interpret the pointer data. Keep 0x80400006 beside the returning method because a wrapper can replace this distinction with a generic subsystem message.
Subsystem boundary
When INPUT_E_DEVICE_INFO is returned, a pointer identifier is interpreted through device metadata supplied by the input stack. Capabilities such as contact dimensions, pressure, orientation, physical scale, and HID usage can be optional, but values that are advertised must still satisfy their units and ranges in the INPUT_E_DEVICE_INFO path. For INPUT_E_DEVICE_INFO, a stale device record after removal or session change is different from a live device that reports one malformed property.
For INPUT_E_DEVICE_INFO, inspect the following boundary: the packet may contain an identifier, but the pipeline also needs a live and compatible device record. Removal, stale handles, driver failure, session changes, or unsupported synthetic devices can break that lookup.
Do not hide the original condition
INPUT_E_DEVICE_PROPERTY means a particular property is absent or malformed after device information was reached; this code means the broader device-information lookup failed. For INPUT_E_DEVICE_INFO, do not retain device handles indefinitely or map a new device onto a stale cached record merely because the numeric handle was reused.
Facts worth preserving
| Record | Why it matters here |
|---|---|
| Device handle or source identifier and Plug and Play instance ID | In INPUT_E_DEVICE_INFO diagnostics, recording device handle or source identifier and Plug and Play instance ID ties the HRESULT to the pointer-device metadata and capabilities boundary rather than to the final visible failure. |
| Device arrival/removal timestamps and session or desktop | Comparing device arrival/removal timestamps and session or desktop shows whether INPUT_E_DEVICE_INFO follows input, object state, or environment. |
| Pointer type and API used to obtain device information | Preserving pointer type and API used to obtain device information provides the evidence needed to test this distinction: iNPUT_E_DEVICE_PROPERTY means a particular property is absent or malformed after device information was reached; this code means the broader device-information lookup failed. |
| SetupAPI, HID, or input-service error preceding the HRESULT | For INPUT_E_DEVICE_INFO, recording SetupAPI, HID, or input-service error preceding the HRESULT separates the pointer-device metadata and capabilities boundary from a later wrapper symptom. |
Isolation procedure
For INPUT_E_DEVICE_INFO, compare the same property query on the same physical device before and after reenumbering, resume, or reconnect. When INPUT_E_DEVICE_INFO is returned, then compare a second device without changing the application build; this separates device-specific metadata from caller structure and version errors.
- When INPUT_E_DEVICE_INFO is returned, query the device before starting the interaction.
- Repeat with a known built-in mouse, touch, or pen device in the INPUT_E_DEVICE_INFO path.
- For INPUT_E_DEVICE_INFO, handle device removal by ending affected pointer lifetimes.
- When INPUT_E_DEVICE_INFO is returned, recreate cached device mappings after session, desktop, or hot-plug changes.
What each result would imply
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If INPUT_E_DEVICE_INFO disappears with a smaller faithful case, complexity within pointer-device metadata and capabilities is implicated. | For INPUT_E_DEVICE_INFO, keep device handle or source identifier and Plug and Play instance ID fixed while simplifying pointer type and API used to obtain device information. |
| Same input, fresh object generation | If INPUT_E_DEVICE_INFO changes after rebuilding state, examine ownership across the packet producer, frame collector, and interaction consumer. | For INPUT_E_DEVICE_INFO, place device arrival/removal timestamps and session or desktop on the timeline of the last successful transition. |
| Same operation on a controlled second path | If INPUT_E_DEVICE_INFO follows one environment, the failure is not explained by source data alone. | For INPUT_E_DEVICE_INFO, compare pointer type, device identity, window, DPI context, and callback phase while preserving SetupAPI, HID, or input-service error preceding the HRESULT. |
Verification after repair
A correction for INPUT_E_DEVICE_INFO should let the operation at the pointer-device metadata and capabilities boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Query the device before starting the interaction” and confirm that the following lifecycle step also succeeds. For INPUT_E_DEVICE_INFO, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.
Technical references
When INPUT_E_DEVICE_INFO is returned, these references define the public API family, object model, or error list used to interpret this status.
- Microsoft: COM error codes for Input and graphics.
- Microsoft: Pointer Input Messages and Notifications.
- Microsoft: POINTER_INFO structure and pointer lifetime.
- Microsoft: GetPointerFrameInfoHistory.
- Microsoft: Interaction Context API.
Looking for a different code? Search another status or error code.