private void WriteRPCBatchHeaders(TdsParserStateObject stateObj)
{
/* Header:
TotalLength - DWORD - including all headers and lengths, including itself
Each Data Session:
{
HeaderLength - DWORD - including all header length fields, including itself
HeaderType - USHORT
HeaderData
}
*/
const int marsHeaderSize = 18; // 4 + 2 + 8 + 4
int totalHeaderLength = 4 + marsHeaderSize;
Debug.Assert(stateObj._outBytesUsed == stateObj._outputHeaderLen, "Output bytes written before total header length");
// Write total header length
WriteInt(totalHeaderLength, stateObj);
// Write Mars header length
WriteInt(marsHeaderSize, stateObj);
// Write Mars header data
WriteMarsHeaderData(stateObj, CurrentTransaction);
}