The Windows XP GINA is a rare instance of simplicity that did/does not result in a superior solution. Web Active Directory LLC’s PeoplePassword tool has an add-on that allows self service password reset and allows users to unlock their own accounts from the logon screen of Windows XP, Windows Vista, and Windows 7 desktops. In order to hook in to the logon screen of a Windows OS there are two different methods depending on the operating system. For Windows XP it’s the GINA, which stands for Graphical Identification and Authentication and for Windows Vista and Windows 7 it’s the Credential Provider.
So why do I not like the Windows XP GINA? Well, it’s a generally simple model in that displaying the logon screen Windows looks to a registry key: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogonGinaDll to determine which process/dll to call next. The problem with this is that if multiple products want to tie in to the GINA each product must “chain” to the next. So if product A and product B both are installed on the same machine and both tie in to the GINA, then each product must make calls to the next to continue the chain…ending with calling msgina.dll. If the chain is broken then you’ve got a brick PC on your hands and you’ll need to use remote registry to modify the problem system back to a working state. So that is where the term GINA chaining came from and its exactly what it sounds like – In the case of PeoplePassword the GinaDll registry key refers to our product’s dll, our product’s dll then refers back to msgina.dll. If there is another product on the system which ties in to the GINA then it must be part of the chain too.
Here are the general scenarios for how this process works.
- GinaDll key calls msgina.dll
- GinaDll key calls PeopleUpdate GINA provider which calls msgina.dll
- GinaDll key calls PeopleUpdate GINA provider which calls another 3rd party provider which calls msgina.dll
Windows Vista and Windows 7 use the credential provider which is more of a parallel operation rather than the serial operation that Window XP uses. Luckily Windows 7 looks to be a much more widely implemented product than Windows Vista and with support for Windows XP ending in 2012 the shelf life of the Windows XP GINA is coming to an end.
http://msdn.microsoft.com/en-us/library/aa380543(VS.85).aspx
http://msdn.microsoft.com/en-us/magazine/cc163803.aspx