3.3.3.5.1 Failure Semantics
If the server encounters an error during the processing of a method call on the server, it SHOULD send back to the client a fault PDU, as specified in [C706] section 12.6.4.7, where the status field of the fault PDU is set to a descriptive status code. If the server is unable to send a fault PDU as specified here, it MUST close the transport connection. The exact protocol primitive used for closing a transport connection depends on the RPC transport and is documented in the normative reference for that transport.
Servers can send any status code in the status field of a fault PDU except the following status codes, which a server MUST NOT send to the client. These status codes have special significance, and their presence in the status field MAY be flagged as a protocol error by the client.
Status codes that MUST NOT be sent by RPC servers |
---|
ERROR_SUCCESS (0x00000000) |
STATUS_GUARD_PAGE_VIOLATION (0x80000001) |
STATUS_DATATYPE_MISALIGNMENT (0x80000002) |
STATUS_BREAKPOINT (0x80000003) |
STATUS_ACCESS_VIOLATION (0xC0000005) |
STATUS_IN_PAGE_ERROR (0xC0000006) |
STATUS_ILLEGAL_INSTRUCTION (0xC000001D) |
STATUS_PRIVILEGED_INSTRUCTION (0xC0000096) |
STATUS_INSTRUCTION_MISALIGNMENT (0xC00000AA) |
STATUS_STACK_OVERFLOW (0xC00000FD) |
STATUS_POSSIBLE_DEADLOCK (0xC0000194) |
STATUS_HANDLE_NOT_CLOSABLE (0xC0000235) |
STATUS_STACK_BUFFER_OVERRUN (0xC0000409) |
STATUS_ASSERTION_FAILURE (0xC0000420) |