HalpAcpiRealTimeToUtcTime
VOID __fastcall HalpAcpiRealTimeToUtcTime(_ACPI_REAL_TIME *AcpiRealTime, _LARGE_INTEGER *UtcTime){
__int64 TimeZone;
_TIME_FIELDS TimeFields;
_LARGE_INTEGER Time;
TimeFields.Year = AcpiRealTime->Year;
TimeFields.Month = AcpiRealTime->Month;
TimeFields.Day = AcpiRealTime->Day;
TimeFields.Hour = AcpiRealTime->Hour;
TimeFields.Minute = AcpiRealTime->Minute;
TimeFields.Second = AcpiRealTime->Second;
TimeFields.Milliseconds = AcpiRealTime->Milliseconds;
Time.QuadPart = 0i64;
TimeFields.Weekday = 0;
if( RtlTimeFieldsToTime(&TimeFields, &Time) )
{
TimeZone = AcpiRealTime->TimeZone;
if( (unsigned __int16)(TimeZone + 1440) > 0xB40u )
ExLocalTimeToSystemTime(&Time, UtcTime);
else
UtcTime->QuadPart = Time.QuadPart + 600000000 * TimeZone;
}
}Referenced by:
HalQueryRealTimeClock