3.1.5.6 MTAG_USER_MESSAGE (MsgTag 0x00000FFF)

When an MTAG_USER_MESSAGE message is received over a Session object, the MSDTC Connection Manager: OleTx Multiplexing Protocol (CMP) implementation MUST examine the fIsMaster field of the MsgHeader field of the message to determine which table contains the destination Connection object. If the fIsMaster field is 0x00000000, then the CMP implementation MUST attempt to find a Connection object with a Connection ID that matches the dwConnectionId field of the MsgHeader field of the message in the Incoming Connection Table of the Session object. Otherwise, the CMP implementation MUST attempt to find a Connection object with a Connection ID that matches the dwConnectionId field of the MsgHeader field of the message in the Outgoing Connection Table of the Session object.

If no Connection object is found in the selected table, or the Accepted field of the Connection object is false, then the CMP implementation MUST ignore the message. Otherwise, the higher-layer protocol MUST be notified of the incoming message by signaling the Receiving a Message (section 3.1.7.4.1) event using the Incoming Message Notification Interface, as described in section 3.1.1.1. The CMP implementation MUST provide the higher-layer protocol with the Connection object, the value of the dwUserMsgType field of the MsgHeader field of the message, and the MessageData field of the MTAG_USER_MESSAGE field if it is present.