private static void CheckForFault(SafeHGlobalBuffer buffer, LRPC_MESSAGE_TYPE message_type) { var header = buffer.Read <LRPC_HEADER>(0); if (header.MessageType != LRPC_MESSAGE_TYPE.lmtFault && header.MessageType != message_type) { throw new ArgumentException($"Invalid response message type {header.MessageType}"); } if (header.MessageType == LRPC_MESSAGE_TYPE.lmtFault) { var fault = buffer.GetStructAtOffset <LRPC_FAULT_MESSAGE>(0); throw new RpcFaultException(fault); } }
public LRPC_HEADER(LRPC_MESSAGE_TYPE message_type) { MessageType = message_type; Padding = 0; }