| Previous | Next |
| STATUS_INSUFF_SERVER_RESOURCES | STATUS_INVALID_ADDRESS_COMPONENT |
STATUS_INVALID_BUFFER_SIZE
The operation rejected the buffer length, not necessarily the buffer address
STATUS_INVALID_BUFFER_SIZE points to a size contract. Windows I/O control requests define input and output buffer lengths independently, and drivers obtain those lengths from the I/O stack location. A structure pointer can be valid while the associated byte count is too small, too large, or inconsistent with a variable-length payload encoded inside the buffer.
Record the control code or native API, the exact structure version, and every size field used to build the request. Do not “fix” the error by allocating a much larger block and keeping the old embedded lengths: many APIs validate both the outer buffer size and internal counts or offsets.
This status is different from STATUS_INFO_LENGTH_MISMATCH, which is commonly tied to an information class and its required record length. Here the operation-specific buffer contract is the key evidence.
What to inspect
InputBufferLengthandOutputBufferLengthat the failing IOCTL or FSCTL boundary.- The compiled structure size, packing and version on both caller and driver sides.
- Variable-length arrays, trailing data, counts and offsets that must fit inside the submitted byte range.
References
- Microsoft: Buffer descriptions for I/O control codes
- Microsoft: DeviceIoControl
- Microsoft: Defining I/O control codes
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.
