Site icon EfmSoft

What does NTSTATUS 0xC0000004 (STATUS_INFO_LENGTH_MISMATCH) mean?

 
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

References


Looking for a different code? Search another status or error code.

Exit mobile version