Share via


The Legacy of the Past Tense

When working with Microsoft technologies you'll inevitably come across references to Legacy API's, Legacy OS's, etc.

Have you ever wondered what that means in technical terms?

Well, in technical terms this is just a reference to indicate that a newer piece of whatever API component or OS we're discussing is available.

This introduces the scenario where one day an API is suddenly termed a Legacy API (this is typically at the launch of a new OS version which introduces new API's).
By itself it doesn't mean that the functionality of the API has changed or that it is less functional than the day before.

It does however mean that future development is less likely to take place in those specific components or API's as there are new components and API's available.
It also means that you may have scenarios where a third party component that was using current API's on a previous version of an OS will technically be using "legacy" API's if installed on the next version of the OS - even if it is using the exact same API in both cases.

A classic example of this is the Smartcard mini-driver architecture vs. the CSP architecture.  As Windows Vista introduced new smartcard API's and architecture when compared to W2k3, all references to CSP's that don't use that architecture are now typically in the terms "Legacy CSP". 
Both the mini-driver and the legacy CSP methods were still supported at the launch of Vista but this introduced scenarios where you could get an issue where a hotfix would only resolve an issue for a mini-driver but not for legacy CSP's (for example the fix in http://support.microsoft.com/kb/949538).

Another example are the public Terminal Server API's that were introduced with Windows Server 2008 R2 - in addition to the new public TS API's W2k8 R2 also contains the same TS API's that Windows 2008 did.
However, since there are newer TS API's available on W2k8 R2 these API's are commonly referred to as "Legacy TS API's".

The morale of the story is: Even if you don't change, the world around you does :)

Further reading:

Using and Understanding [Legacy TS] APIs for Terminal Server
http://technet.microsoft.com/en-us/library/cc751287.aspx

Remote Desktop Services Developer Resources
http://archive.msdn.microsoft.com/rdsdev 

Remote Desktop Services [API] Reference
http://msdn.microsoft.com/en-us/library/aa383494(VS.85).aspx

ICspInformation::LegacyCsp property       
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376752(v=vs.85).aspx

Windows Vista Smart Card Infrastructure
http://msdn.microsoft.com/en-us/library/bb905527.aspx