| Previous | Next |
| STATUS_PORT_MESSAGE_TOO_LONG | STATUS_INVALID_QUOTA_LOWER |
STATUS_INVALID_PARAMETER_MIX
Validate relationships between parameters, not only each value in isolation
STATUS_INVALID_PARAMETER_MIX is a relational validation failure. A pointer, flag, or numeric value can be valid by itself and still be illegal when combined with another argument. This makes the status particularly useful for APIs with mutually exclusive selectors, paired minimum/maximum values, or request modes that require different supporting data.
NtOpenProcess provides a clear example: the caller must identify the process by client ID and must not supply an object name in the incompatible combination documented by the routine. WmiQueryTraceInformation returns the same status when the caller omits information required for the selected trace-information query. IOMMU logical-address reservation routines likewise use parameter-mix validation when minimum and maximum address constraints cannot be satisfied together.
Debugging each parameter with a simple range check will miss these cases. Log the complete argument set after defaults have been expanded and flags normalized. Then compare the combination with the operation's documented matrix. Pay special attention to “one of”, “exactly one”, “required when”, and “must be NULL unless” rules. Do not change one parameter randomly until the call succeeds; that can silently select a different operation rather than repair the original request.
What to inspect
- Reconstruct the full post-default argument set at the failing call site.
- Check mutually exclusive flags and conditional pointer/length pairs.
- For min/max or capability constraints, log both requested bounds and the provider limits used to validate them.
References
- Microsoft: NtOpenProcess
- Microsoft: WmiQueryTraceInformation
- Microsoft: IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE
- Microsoft: NDK completion-queue interrupt moderation
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.
