2.2.6.2 MESSAGE_HEADER

The MESSAGE_HEADER structure is a member of other message structures and is used to provide metadata about each message. The fields are common for all the NEGOEX messages in a conversation exchange except for the MESSAGE_TYPE field, which varies according to the message. 

 struct
 {
     ULONG64 Signature; 
     MESSAGE_TYPE MessageType; 
     ULONG SequenceNum;
     ULONG cbHeaderLength;
     ULONG cbMessageLength;
     CONVERSATION_ID ConversationId;
 } MESSAGE_HEADER; 

Signature: A ULONG64 type that contains the MESSAGE_SIGNATURE constant in hexadecimal format that indicates "NEGOEXTS", as specified in section 2.2.3. The message signature should remain the same throughout the negotiation process. 

MessageType: A value of the MESSAGE_TYPE enumeration, as specified in section 2.2.6.1, that contains the type of message. 

SequenceNum: A ULONG type that contains the message sequence number of the specific conversation, starting with 0 and incremented sequentially. 

cbHeaderLength: A ULONG type that contains the header length of the message, which includes the message-specific header and excludes the payload. 

cbMessageLength: A ULONG type that contains the length of the message. 

ConversationId: A CONVERSATION_ID GUID, as specified in section 2.2.2, that the initiator and the acceptor use as a context handle to identify an exchange conversation. The CONVERSATION_ID is referred to as ConversationID (section 3.1.5.2). The ConversationID MUST remain the same throughout the entire exchange.