IMO
In the logon process, msgina called WlxSetOption() with WLX_OPTION_SMART_CARD_PRESENT during initializing welcome dialog. It will cause that executes winlogon!SCWorkerThread() will try to connect default reader(\ ?PnP?\Notification) on the server. at the same time, “ScInsert” event will add smart card event queue. then if winlogon has not called winlogon!LogonAttempt() yet, this sas event passed ctxgina!WlxLoggedOutSAS() then msgina called in gina chain will check whether smart card reader driver exists or not. If it does not, user can meet this error even if user will not logon to ica session with smart card.

Debug Log
ChildEBP RetAddr Args to Child
006f9cc 01025cd4 0007e080 00000005 0006fcb0 winlogon!SASRouter (FPO: [Non-Fpo])
006fc38 77eab6e3 00010016 00000659 0000007e winlogon!SASWndProc+0x9c0 (FPO: [Non-Fpo])
006fc64 77eab874 01025314 00010016 00000659 USER32!InternalCallWinProc+0x28
006fcdc 77eaba92 00000000 01025314 00010016 USER32!UserCallWinProcCheckWow+0x151 (FPO: [Non-Fpo])
006fd44 77eabad0 0006fd6c 00000000 0006fd8c USER32!DispatchMessageWorker+0x327 (FPO: [Non-Fpo])
006fd54 77ea61af 0006fd6c 00000000 00000000 USER32!DispatchMessageW+0xf (FPO: [Non-Fpo]) 006fd8c 77e9969d 00010026 00000000 00000010 USER32!DialogBox2+0x15a (FPO: [Non-Fpo])
006fdb4 77e996df 756e0000 757fca7c 00000000 USER32!InternalDialogBox+0xd0 (FPO: [Non-Fpo])
006fdd4 77e99727 756e0000 757fca7c 00000000 USER32!DialogBoxIndirectParamAorW+0x37 (FPO: [Non-Fpo])
006fdf8 0103de0a 756e0000 00000578 00000000 USER32!DialogBoxParamW+0x3f (FPO: [Non-Fpo]) 006fe1c 0102d838 756e0000 00000578 00000000 winlogon!Fusion_DialogBoxParam+0x24 (FPO: [Non-Fpo])
006fe58 0103b6e0 0007e080 756e0000 00000578 winlogon!TimeoutDialogBoxParam+0x28 (FPO: [Non-Fpo])
006fe90 679c3dca 0007e080 756e0000 00000578 winlogon!WlxDialogBoxParam+0x80 (FPO: [Non-Fpo])
006febc 756e39f7 0007e080 756e0000 00000578 ctxgina!ctxginaWlxDialogBoxParam+0xea (FPO: [Non-Fpo]) (CONV: stdcall)
006fee4 01037775 0009e008 7c822f9d 7c802004 MSGINA!WlxDisplaySASNotice+0x45 (FPO: [Non-Fpo])
006ff08 01031b33 0007e080 ffffffff 00000004 winlogon!MainLoop+0x168 (FPO: [Non-Fpo])
006ff50 0103e33b 0007e080 00000000 000724fc winlogon!WUNotify+0x515 (FPO: [Non-Fpo])
006fff4 00000000 7ffde000 000000c8 000001f2 winlogon!__report_gsfailure+0x267 (FPO: [Non-Fpo])

ChildEBP RetAddr Args to Child
006f868 0103516c 0009e008 00000005 00082808 ctxgina!WlxLoggedOutSAS (FPO: [Non-Fpo]) (CONV: stdcall)
006fee4 01037887 0007e080 7c822f9d 7c802004 winlogon!LogonAttempt+0x179 (FPO: [Non-Fpo])

kd> !process 81e0ed88 7
PROCESS 81e0ed88 SessionId: 2 Cid: 067c Peb: 7ffdf000 ParentCid: 017c
DirBase: 0ff6f7e0 ObjectTable: e19db418 HandleCount: 311.
Image: winlogon.exe
VadRoot 81ea8060 Vads 364 Clone 0 Private 921. Modified 4. Locked 0.
DeviceMap e1000178
Token e10bd738
ElapsedTime 00:00:09.774
UserTime 00:00:00.000
KernelTime 00:00:00.234
QuotaPoolUsage[PagedPool] 171436
QuotaPoolUsage[NonPagedPool] 17720
Working Set Sizes (now,min,max) (2814, 50, 345) (11256KB, 200KB, 1380KB)
PeakWorkingSetSize 2814
VirtualSize 91 Mb
PeakVirtualSize 91 Mb
PageFaultCount 3337
MemoryPriority BACKGROUND
BasePriority 13
CommitCharge 1469

THREAD 821b9278 Cid 067c.1134 Teb: 7ffde000 Win32Thread: bc046d10 WAIT: (Unknown) UserMode Non-Alertable
82230140 SynchronizationEvent
Not impersonating
DeviceMap e1000178
Owning Process 81e0ed88 Image: winlogon.exe
Wait Start TickCount 4462460 Ticks: 3 (0:00:00:00.046)
Context Switch Count 1022 LargeStack
UserTime 00:00:00.312
KernelTime 00:00:02.750
Start Address winlogon!__report_gsfailure (0x0103e1b0)
Stack Init f59e3000 Current f59e2c68 Base f59e3000 Limit f59de000 Call 0
Priority 15 BasePriority 15 PriorityDecrement 0
ChildEBP RetAddr Args to Child
f59e2c80 8082ffb7 821b9278 821b9320 0000a100 nt!KiSwapContext+0x25 (FPO: [Uses EBP] [0,0,4])
f59e2c98 808287b4 00000000 bc046d10 00000000 nt!KiSwapThread+0x83 (FPO: [Non-Fpo])
f59e2cdc bf89b1c3 82230140 0000000d 00000001 nt!KeWaitForSingleObject+0x2e0 (FPO: [Non-Fpo])
f59e2d38 bf89e033 000024ff 00000000 00000001 win32k!xxxSleepThread+0x1be (FPO: [Non-Fpo])
f59e2d4c bf89e9f1 000024ff 00000000 0006e084 win32k!xxxRealWaitMessageEx+0x12 (FPO: [Non-Fpo])
f59e2d5c 80883908 0006e0b0 7c9785ec badb0d00 win32k!NtUserWaitMessage+0x14 (FPO: [0,0,0])
f59e2d5c 7c9785ec 0006e0b0 7c9785ec badb0d00 nt!KiFastCallEntry+0xf8 (FPO: [0,0] TrapFrame @ f59e2d64)
0006e078 77eabf53 77ea610a 00000000 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
0006e0b0 77e9969d 00020026 00000000 00000001 USER32!NtUserWaitMessage+0xc
0006e0d8 77eaf762 77e90000 0012fa60 00000000 USER32!InternalDialogBox+0xd0 (FPO: [Non-Fpo])
0006e398 77eaf047 0006e4f4 000bb988 0007e080 USER32!SoftModalMessageBox+0x94b (FPO: [Non-Fpo])
0006e4e8 77eaeec9 0006e4f4 00000028 00000000 USER32!MessageBoxWorker+0x2ba (FPO: [Non-Fpo])
0006e540 77eaee65 00000000 000a3b68 000bb988 USER32!MessageBoxTimeoutW+0x7a (FPO: [Non-Fpo])
0006e560 77eaee41 00000000 000a3b68 000bb988 USER32!MessageBoxExW+0x1b (FPO: [Non-Fpo])
0006e57c 0103de71 00000000 000a3b68 000bb988 USER32!MessageBoxW+0x45 (FPO: [Non-Fpo])
0006e59c 0102d7f8 00000000 000a3b68 000bb988 winlogon!Fusion_DialogBoxIndirectParam+0x5b (FPO: [Non-Fpo])
0006e5b8 0103b654 0007e080 00000000 000a3b68 winlogon!TimeoutMessageBoxlpstr+0x28 (FPO: [Non-Fpo])
0006e5dc 679c3715 0007e080 00000000 000a3b68 winlogon!WlxMessageBox+0x52 (FPO: [Non-Fpo])
0006e604 756fddd0 0007e080 00000000 000a3b68 ctxgina!ctxginaWlxMessageBox+0xe5 (FPO: [Non-Fpo]) (CONV: stdcall)
0006e628 756fe20d 00000000 0009e008 000a3b68 MSGINA!TimeoutMessageBoxlpstr+0x3b (FPO: [Non-Fpo])
0006e658 756eff54 00000000 0009e008 00000600 MSGINA!TimeoutMessageBox+0x7f (FPO: [Non-Fpo])
0006ef90 756e4181 0009e008 00000005 00000005 MSGINA!Logon+0xff (FPO: [Non-Fpo])
0006f3f0 679c48c8 0009e008 00000005 00082808 MSGINA!WlxLoggedOutSAS+0xd1 (FPO: [Non-Fpo])
0006f868 0103516c 0009e008 00000005 00082808 ctxgina!WlxLoggedOutSAS+0x118 (FPO: [Non-Fpo]) (CONV: stdcall)
0006fee4 01037887 0007e080 7c822f9d 7c802004 winlogon!LogonAttempt+0x179 (FPO: [Non-Fpo])
0006ff08 01031b33 0007e080 ffffffff 00000004 winlogon!MainLoop+0x1dd (FPO: [Non-Fpo])
0006ff50 0103e33b 0007e080 00000000 000724fc winlogon!WUNotify+0x515 (FPO: [Non-Fpo])
0006fff4 00000000 7ffdf000 000000c8 000001dd winlogon!__report_gsfailure+0x267 (FPO: [Non-Fpo])

~Snips~

THREAD 81992910 Cid 067c.1508 Teb: 7ffa4000 Win32Thread: bc2dfc40 WAIT: (Unknown) UserMode Non-Alertable
82214d20 NotificationEvent
81d9c0d8 NotificationEvent
82157ca8 NotificationEvent
IRP List:
81dcee28: (0006,01d8) Flags: 00000070 Mdl: 00000000
Not impersonating
DeviceMap e1000178
Owning Process 81e0ed88 Image: winlogon.exe
Wait Start TickCount 4461569 Ticks: 894 (0:00:00:13.968)
Context Switch Count 6 LargeStack
UserTime 00:00:00.000
KernelTime 00:00:00.015
Win32 Start Address winlogon!SCWorkerThread (0x0103a047)
Start Address kernel32!BaseThreadStartThunk (0x7c8217ec)
Stack Init f5ceb000 Current f5cea914 Base f5ceb000 Limit f5ce7000 Call 0
Priority 14 BasePriority 13 PriorityDecrement 0
ChildEBP RetAddr Args to Child
f5cea92c 8082ffb7 81992910 ffdff120 00000d01 nt!KiSwapContext+0x25 (FPO: [Uses EBP] [0,0,4])
f5cea944 808282b0 81992910 00000003 00000000 nt!KiSwapThread+0x83 (FPO: [Non-Fpo])
f5cea978 80930d34 00000003 f5ceaaac 00000001 nt!KeWaitForMultipleObjects+0x320 (FPO: [Non-Fpo])
f5ceabf4 80930e96 00000003 f5ceac1c 00000001 nt!ObpWaitForMultipleObjects+0x202 (FPO: [Non-Fpo])
f5cead48 80883908 00000003 0139fdf4 00000001 nt!NtWaitForMultipleObjects+0xc8 (FPO: [Non-Fpo])
f5cead48 7c9785ec 00000003 0139fdf4 00000001 nt!KiFastCallEntry+0xf8 (FPO: [0,0] TrapFrame @ f5cead64)
0139fda4 7c977cfb 7c82202c 00000003 0139fdf4 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
0139fda8 7c82202c 00000003 0139fdf4 00000001 ntdll!NtWaitForMultipleObjects+0xc (FPO: [5,0,0])
0139fe50 7c822fbe 00000003 0139fe90 00000000 kernel32!WaitForMultipleObjectsEx+0x11a (FPO: [Non-Fpo])
0139fe6c 655457d8 00000003 0139fe90 00000000 kernel32!WaitForMultipleObjects+0x18 (FPO: [Non-Fpo])
0139fea0 6554a9fc 00000404 00310060 000b6610 scardhook!SendSCardIOCTL+0xf8 (FPO: [Non-Fpo]) (CONV: stdcall)
0139ff34 0103a266 cd020001 ffffffff 000a9218 scardhook!SCardHook_SCardGetStatusChangeW+0x42c (FPO: [Non-Fpo]) (CONV: stdcall)
0139ffb8 7c824829 00000000 00000000 00000000 winlogon!SCWorkerThread+0x21f (FPO: [Non-Fpo])
0139ffec 00000000 0103a047 00000000 00000000 kernel32!BaseThreadStart+0x34 (FPO: [Non-Fpo])

kd> !irp 81dcee28 f
Irp is active with 3 stacks 3 is current (= 0x81dceee0) No Mdl: System buffer=8223dbf8: Thread 81992910: Irp stack trace.
Flags = 00000070
ThreadListEntry.Flink = 81992b18
ThreadListEntry.Blink = 81992b18
IoStatus.Status = 00000000
IoStatus.Information = 00000000
RequestorMode = 00000001
Cancel = 00
CancelIrql = 0
ApcEnvironment = 00
UserIosb = 00e33d80
UserEvent = 82214d20
Overlay.AsynchronousParameters.UserApcRoutine = 00000000 Overlay.AsynchronousParameters.UserApcContext = 00e33d80 Overlay.AllocationSize = 00000000 – 00000000
CancelRoutine = f5ffe120 cdm!SCardCancelWaitThread
UserBuffer = 000a4c00
&Tail.Overlay.DeviceQueueEntry = 81dcee68 Tail.Overlay.Thread = 81992910 Tail.Overlay.AuxiliaryBuffer = 00000000 Tail.Overlay.ListEntry.Flink = 00000000 Tail.Overlay.ListEntry.Blink = 00000000 Tail.Overlay.CurrentStackLocation = 81dceee0 Tail.Overlay.OriginalFileObject = 8229a490 Tail.Apc = 00000000 Tail.CompletionKey = 00000000
cmd flg cl Device File Completion-Context
[ 0, 0] 0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
[ 0, 0] 0 0 00000000 00000000 00000000-00000000

Args: 00000000 00000000 00000000 00000000
>[ e, 0] 5 1 81dcdec0 8229a490 00000000-00000000 pending
\FileSystem\Cdm
Args: 00000400 000000c1 00310060 00000000
kd> !fileobj 8229a490

\SmartCard:\2\PCSC

Device Object: 0x81dcdec0 \FileSystem\Cdm
Vpb is NULL
Access: Read Write SharedRead SharedWrite

Flags: 0x40000
Handle Created

FsContext: 0x81da5d88 FsContext2: 0x81e85f18
CurrentByteOffset: 0
Cache Data:
Section Object Pointers: 81da5e48
Shared Cache Map: 00000000

kd> du 0x01015308
01015308 “\ ?PnP?\Notification”

Related article with this behavior
http://support.microsoft.com/kb/961332/ja

Global Escalation Manager Tokyo
-fb