diff --git a/UnifiedFlashingPlatform/UnifiedFlashingPlatformTransport.WriteParam.cs b/UnifiedFlashingPlatform/UnifiedFlashingPlatformTransport.WriteParam.cs index 6ce4a38..5630912 100644 --- a/UnifiedFlashingPlatform/UnifiedFlashingPlatformTransport.WriteParam.cs +++ b/UnifiedFlashingPlatform/UnifiedFlashingPlatformTransport.WriteParam.cs @@ -30,9 +30,9 @@ namespace UnifiedFlashingPlatform { byte[] ParamBuffer = new byte[540 + Data.Length]; - /* 15..30 */ Buffer.BlockCopy(Guid.ToByteArray(), 0, ParamBuffer, 0, 16); // TODO: Check validity of the encoding - /* 31..34 */ Buffer.BlockCopy(BigEndian.GetBytes(Name.Length, 4), 0, ParamBuffer, 16, 4); - /* 35.. */ Buffer.BlockCopy(Encoding.ASCII.GetBytes(Name), 0, ParamBuffer, 20, Math.Min(512, Name.Length)); // 512 Max Size for name + /* 15..30 */ Buffer.BlockCopy(Guid.ToByteArray(), 0, ParamBuffer, 0, 16); + /* 31..34 */ Buffer.BlockCopy(BigEndian.GetBytes(Name.Length * 2, 4), 0, ParamBuffer, 16, 4); + /* 35.. */ Buffer.BlockCopy(Encoding.Unicode.GetBytes(Name), 0, ParamBuffer, 20, Math.Min(512, Name.Length * 2)); // 256 Max Size for name (unicode) /* 547..550 */ Buffer.BlockCopy(BigEndian.GetBytes(Attributes, 4), 0, ParamBuffer, 532, 4); /* 551..554 */ Buffer.BlockCopy(BigEndian.GetBytes(Data.Length, 4), 0, ParamBuffer, 536, 4); /* 555.. */ Buffer.BlockCopy(Data, 0, ParamBuffer, 540, Data.Length);