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.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

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.