예제 #1
0
        public static Xbox360DMI?DecodeXbox360(byte[] response)
        {
            bool isX360 = IsXbox360(response);

            if (!isX360)
            {
                return(null);
            }

            Xbox360DMI dmi = new Xbox360DMI
            {
                DataLength = (ushort)((response[0] << 8) + response[1]),
                Reserved1  = response[2],
                Reserved2  = response[3],
                Version    = BitConverter.ToUInt32(response, 4),
                Timestamp  = BitConverter.ToInt64(response, 20),
                MediaID    = new byte[16]
            };

            Array.Copy(response, 36, dmi.MediaID, 0, 16);
            byte[] tmp = new byte[16];
            Array.Copy(response, 68, tmp, 0, 16);
            dmi.CatalogNumber = StringHandlers.CToString(tmp);

            return(dmi.CatalogNumber == null || dmi.CatalogNumber.Length < 13 ? (Xbox360DMI?)null : dmi);
        }