| Previous | Next |
| STATUS_INVALID_INFO_CLASS | STATUS_ACCESS_VIOLATION |
STATUS_INFO_LENGTH_MISMATCH
The selected information class and the buffer length disagree
STATUS_INFO_LENGTH_MISMATCH is a contract error between an information-class selector and the byte length supplied for the corresponding record. The class chooses a particular structure or layout, and the receiver finds that the Length value cannot represent the information required for that operation. This is why the failing class, length, and structure version should be logged together.
Windows file-system validation routines provide concrete examples. IoCheckQuerySetFileInformation and IoCheckQuerySetVolumeInformation return this status when the supplied size is smaller than the amount required for the selected operation. ChangerGetParameters similarly requires an output buffer of at least sizeof(GET_CHANGER_PARAMETERS). These examples show why random buffer doubling is not the first diagnostic step: some operations have a fixed minimum structure, while others publish a returned required length.
Check the caller's actual compiled structure size, architecture, packing, and any Size or version fields. A stale private structure definition can survive compilation and still disagree with the running component. Also distinguish this status from STATUS_BUFFER_OVERFLOW, which can describe partial output, and STATUS_BUFFER_TOO_SMALL, whose API contract may support a size-probe/retry pattern.
What to inspect
- Record the information class, supplied length, expected structure type, and returned length when the API provides one.
- Use the documented minimum or returned size instead of blindly adding an arbitrary margin.
- Check structure packing and SDK/header drift when the same binary layout crosses module or process boundaries.
References
- Microsoft: IoCheckQuerySetFileInformation
- Microsoft: NtQueryInformationByName
- Microsoft: ChangerGetParameters
- Microsoft: Using NTSTATUS values
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.