2.3 NTSTATUS
Values are 32 bit and are laid out as follows. The following diagram is independent of endianness; that is, the diagram is shown in host byte order and merely shows the layout of the numbering space.
Any protocol that uses NTSTATUS values on the wire is responsible for stating the order that the bytes are placed on the wire.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sev |
C |
N |
Facility |
Code |
Sev (2 bits): Severity. Severity codes are as follows.
-
Value
Meaning
STATUS_SEVERITY_SUCCESS
0x0
Success
STATUS_SEVERITY_INFORMATIONAL
0x1
Informational
STATUS_SEVERITY_WARNING
0x2
Warning
STATUS_SEVERITY_ERROR
0x3
Error
C (1 bit): Customer. This specifies if the value is customer- or Microsoft-defined. This bit is set for customer-defined values and clear for Microsoft-defined values.<4>
N (1 bit): Reserved. MUST be set to 0 so that it is possible to map an NTSTATUS value to an equivalent HRESULT value, as specified in section 2.1, by setting this bit.
Facility (12 bits): A value that, together with the C bit, indicates the numbering space to use for the Code field.<5>
Code (2 bytes): The remainder of the error code. Vendors SHOULD reuse the values in the following table with their indicated meaning or define their own values with the C bit set. Choosing any other value with the C bit clear runs the risk of a collision in the future.