Viagra Professional - Buy Online

August 28, 2007

GINA Solo

Filed under: GINA — snakecar @ 7:37 pm

A guy I respect very much once told me he wrote his first GINA during a week-end.

Let’s face it, I’m not that bright: already to get it working on a domain-based setting took a few days. But when a partner asked for a workgroup version, trouble started.

Here is/are the thing(s):
1) Under XP “home” (thus the “Solo” deal), winlogon will _not_ send insertion or removal events to the GINA.

2) The Microsoft winlogon service that handles the GINA is not re-entrant (don’t know about Vista, but I am convinced that this statement is correct under 2K and XP).

So to fix 1) I decided to run a second thread that would tell winlogon that the card had been inserted or removed (polling is ugly I know).

Yes but 2) generated an amazing amount of sporadic crashes … that my partner did struggle with (as a user) as much as I did, I must admit.

Being an MSDN lawful subscriber, I got to talk the some of the folks at MS that deal with that … and no go .

A consultant out there (I believe that is Keith: http://www.pluralsight.com/wiki/default.aspx/Keith/CustomizingGINA.html ), has a forum where I posted my problem.

There I was told about that re-entrency problem and that the trick that was usually used (especially in the Microsoft COM code), was to create a hidden window and send it a user’s-event to wake it up (that is scary no ?).

Anyway, that did the trick, and although I am not very proud of my code when I look at it (too much was written at 2 am maybe); next I’ll release that GINA Solo thing (dll in C++, and configuration utility in VB6 … that was before I found out about wxPython).

The released applet was in BasicCard (actually my first GINA applet was in S-Choice: http://www.sci-s.com/schoice_os.htm ) … I think I have one In JavaCard also.

I will release the former and the latter.

Philippe


No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Sorry, the comment form is closed at this time.

Powered by WordPress