public byte[] Serialize()
{
// Set start index is 0
int index = 0;
// Get the serialized ROP request buffer
byte[] serializeBuffer = new byte[this.Size()];
serializeBuffer[index++] = this.RopId;
serializeBuffer[index++] = this.LogonId;
serializeBuffer[index++] = this.InputHandleIndex;
// 0 indicates start index
Array.Copy(BitConverter.GetBytes((ushort)this.TransferDataSize), 0, serializeBuffer, index, sizeof(ushort));
// 2 indicates 16 bit occupies 2 bytes location
index += 2;
// 0 indicates minimum size of TransferDataSize
if (this.TransferDataSize > 0)
{
// 0 indicates start index
Array.Copy(this.TransferData, 0, serializeBuffer, index, this.TransferDataSize);
index += this.TransferDataSize;
}
return serializeBuffer;
}