Thursday 13 February 2014

GDR, LDR, QFE Explained

I was trying to install a particular version of CLR on my Windows 8 VM via MS security updates, and they used some terms like GDR and LDR there without proper explanation. Let's see an example.

​(From http://support.microsoft.com/kb/2833958 )

File information

GDR Service Branch
Collapse this tableExpand this table
File nameFile versionFile sizeDateTime
Mscorlib.resources.dll4.0.30319.180101,038,85631-Aug-201200:52
Mscorlib.resources.dll4.0.30319.18010984,58431-Aug-201200:51

..........

LDR Service Branch
Collapse this tableExpand this table
File nameFile versionFile sizeDateTime
Mscorlib.resources.dll4.0.30319.190101,038,85631-Aug-201200:53
Mscorlib.resources.dll4.0.30319.19010984,58431-Aug-201200:52
..........

​The file version I was looking for ​was in GDR Service Branch, but I was still not sure if I would get the expected version installed correctly on the machine. Before trying, I needed to understand what they meant. 

​​So, what are they?

First of all, the terms stand for: 

  • GDR means "General Distribution Release". 
  • LDR means "Limited Distribution Release". 
  • QFE means "Quick Fix Engineering" which is deprecated by LDR now.

GDR versions are intensively tested but do not contain many fixes as LDR versions. LDR versions are not fully tested just like our hot fixes. All distributed versions are, of course, basically GDR. Then, how the system gets into LDR mode? Let me quote another comment from the references. 

A package delivered by Windows Update contains both GDR and LDR versions of the files it updates, so that it is able to replace the files on the system regardless of which branch they are currently on.

A package acquired outside of Windows Update contains only LDR versions of the files it updates, and this will "move" the files onto the LDR branch where they will remain until the next Service Pack.

​​This means, if we just use Windows Updates all the time, the system never gets chance to switch. However, once an LDR-only hot fixes is applied, the system will be regarded as LDR. 

​How do we know the current status?

The information can be retrieved on PowerShell. 

PS> Get-item c:\Windows\System32\ntoskrnl.exe | select *


"FileVersion" field shows the branch name. On this screenshot, it's GDR. So if I install the fix package on the KB article I mentioned first, the system will get the GDR version of file which I want. 

The following table from a Windows KB can be also used for determination.


VersionProductMilestoneService branch
6.0.6000.16xxxWindows VistaRTMGDR
6.0.6000.20xxxWindows VistaRTMLDR
6.0.6001.18xxxWindows Vista SP1 and Windows Server 2008 SP1SP1GDR
6.0.6001.22xxxWindows Vista SP1 and Windows Server 2008 SP1SP1LDR
6.0.6002.18xxxWindows Vista SP2 and Windows Server 2008 SP2SP2GDR
6.0.6002.22xxxWindows Vista SP2 and Windows Server 2008 SP2SP2LDR


​References


Evernote helps you remember everything and get organized effortlessly. Download Evernote.

No comments: