At first, for v2009-10_1 of my own update pack, I tried simply using the entries in [Product.Add.Reg] at both T~20 and T-13, hoping it wouldn't be necessary to recreate the missing commands. This didn't work because the "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" key was populated before then, using the old data, with no obvious way of refreshing the information afterward. One symptom, as reported to me by Kurt_Aust, was that the DST offset for "(GMT+10:00) Canberra, Melbourne, Sydney" was not applied when it should be. The end-user could fix this by changing away from, then back to the desired time zone.
I fixed this by adding the new time zone entries from [Product.Add.Reg] during textmode using the [HiveInfs.Fresh] section of TxtSetup.sif, in addition to adding them at T-13. This worked, but, upon further investigation, the "(GMT+08:00) Perth" zone wasn't updated compared to a machine upon which the original KB974176 update package was installed. The following image is what the selection window should look like, but the area selected by the red oval still showed the DST adjustment checkbox, which was incorrect.
When looking into this further, I've found that the following line in [Product.Add.Reg] is incorrect compared what's found in the Windows registry after using the update package. This line is altered for readability here:
Code: Select all
HKLM,"%TZROOT%\W. Australia Standard Time","TZI",0x1,20,FE,FF,FF,00,00,00,\ 00,C4,FF,FF,FF,00,00,03,00,00,00,05,00,03,00,00,00,00,00,00,00,00,00,0A,\ 00,00,00,05,00,02,00,00,00,00,00,00,00
Code: Select all
HKLM,"%TZROOT%\W. Australia Standard Time","TZI",0x1,20,FE,FF,FF,00,00,00,\ 00,C4,FF,FF,FF,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\ 00,00,00,00,00,00,00,00,00,00,00,00,00
The easiest way I can think of to get the correct information is to export the entire "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" key and add it as a hive during textmode setup. This method has the following advantages:
- Most importantly, the correct registry entries are added.
- The entries are added as early as possible, before the "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" key is populated later in GUImode setup.
- No bulky TZChange.exe commands need to be reverse-engineered or used at all.