Site icon EfmSoft

What does NTSTATUS 0xC000000D (STATUS_INVALID_PARAMETER) mean?

 
Previous Next
STATUS_TIMER_NOT_CANCELED STATUS_NO_SUCH_DEVICE

STATUS_INVALID_PARAMETER

The status is generic; the called routine defines the actual invalid condition

STATUS_INVALID_PARAMETER should not be diagnosed from its message text alone. It is a broad contract result used by many native and driver APIs, and each routine defines different invalid conditions. The useful question is not “which parameter is bad in Windows?” but “which documented precondition of this exact call was violated?”

For example, USBD_CreateHandle can return the status for null device or output pointers, an invalid USB client contract version, or a zero pool tag. NtQueryInformationByName documents it for an invalid FileInformationClass value. File-system control specifications also use the same status for invalid buffer length, handle type, field values, or unsupported version fields in a specific request. The identical NTSTATUS therefore represents very different defects at different call sites.

Capture the function name and every discriminator that changes parameter semantics: flags, information class, operation code, structure version, length, access mode, and object type. Validate them before converting the status to a Win32 error, because conversion loses call-site context. In driver code, prefer returning a more specific parameter-index status when the public contract uses one, but do not invent such a mapping after the fact.

What to inspect

References


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

Exit mobile version