/// <summary> /// 2.2.1.11.1.1.1 /// </summary> /// <param name="zoneInfo"></param> public void VerifyStructure(TS_TIME_ZONE_INFORMATION zoneInfo) { site.CaptureRequirementIfIsTrue(System.Runtime.InteropServices.Marshal.SizeOf(zoneInfo.DaylightName) == 64, 547, @"In TS_TIME_ZONE_INFORMATION structure, DaylightName field must be 64 bytes"); site.CaptureRequirementIfIsTrue(System.Runtime.InteropServices.Marshal.SizeOf(zoneInfo.DaylightDate) == 16, 549, @"In TS_TIME_ZONE_INFORMATION structure, DaylightDate must be 16 bytes"); site.CaptureRequirementIfIsTrue(System.Runtime.InteropServices.Marshal.SizeOf(zoneInfo.DaylightBias) == 4, 553, @"In TS_TIME_ZONE_INFORMATION structure, DaylightBias must be 4 bytes"); }
/// <summary> /// Parse TS_TIME_ZONE_INFORMATION /// (parser index is updated according to parsed length) /// </summary> /// <param name="data">data to be parsed</param> /// <param name="currentIndex">current parser index</param> /// <returns>TS_TIME_ZONE_INFORMATION</returns> private TS_TIME_ZONE_INFORMATION ParseTimeZone(byte[] data, ref int currentIndex) { TS_TIME_ZONE_INFORMATION timeZoneData = new TS_TIME_ZONE_INFORMATION(); timeZoneData.Bias = (int)ParseUInt32(data, ref currentIndex, false); timeZoneData.StandardName = GetString(data, ref currentIndex, 64); timeZoneData.StandardDate = ParseSystemTime(data, ref currentIndex); timeZoneData.StandardBias = (int)ParseUInt32(data, ref currentIndex, false); timeZoneData.DaylightName = GetString(data, ref currentIndex, 64); timeZoneData.DaylightDate = ParseSystemTime(data, ref currentIndex); timeZoneData.DaylightBias = (int)ParseUInt32(data, ref currentIndex, false); return timeZoneData; }