| Previous | Next |
| STATUS_COMMITMENT_MINIMUM | STATUS_TRANSPORT_FULL |
STATUS_REG_NAT_CONSUMPTION
NaT consumption is an Itanium deferred-exception fault
STATUS_REG_NAT_CONSUMPTION belongs to the IA-64/Itanium execution model. Intel documents that speculative loads can defer certain exceptions by producing a NaT-marked register value. A later non-speculative instruction that consumes such a register can raise a Register NaT Consumption fault. The failure is therefore tied to speculative/deferred-exception state, not to an arbitrary “invalid register.”
Intel's Itanium Software Developer's Manual states that a non-speculative instruction reading a register containing a deferred-exception token raises this fault. The System Abstraction Layer specification similarly says NaT consumption can be generated when a non-speculative operation uses a source register containing NaT or references the NaTPage, and notes that correctly constructed code should not normally generate the fault. These architecture rules are the useful context behind the NTSTATUS name.
For a dump from Itanium-era Windows, preserve the faulting instruction pointer, register state including NaT information, unwind state, compiler-generated speculative-load/check sequence, and the original exception path that could have produced the deferred token. Treating the fault as a conventional access violation loses the instruction-dependency chain. On non-IA-64 systems, first verify that the decoded code and architecture are correct rather than attempting Itanium-specific remediation.
What to inspect
- Verify the dump architecture is IA-64 before interpreting NaT semantics.
- Disassemble the speculative load, check instruction, and consuming instruction sequence.
- Preserve register/NaT and unwind context instead of reducing the event to an access violation.
References
- Microsoft Open Specifications: NTSTATUS values
- Intel Itanium Architecture Software Developer's Manual, Volume 1
- Intel Itanium System Abstraction Layer Specification
- Intel Itanium Architecture Software Developer's Manual, Volume 2
- Intel Itanium Architecture Software Developer's Manual, Volume 3
Looking for a different code? Search another status or error code.