I'm running into a WinCE 6.0 stress test problem caused by Software-
based Input Panel (SIP) component.
The test environment is:
- Windows XP with SP2
- Visual Studio 2005
- Visual Studio 2005 SP1
- Windows Embedded CE 6.0 Platform Builder
- Windows Embedded CE 6.0 SP1 (required if PB 6.0 Tools have been
installed)
- Windows Embedded CE 6.0 R2
- Windows Embedded CE 6.0 Cumulative Product Update Rollup 12/31/2007
- Windows Embedded CE 6.0 Monthly Update (January ~ March 2008)
The workspace configuration is:
<FeatureCollection Name="AnchoredFeatures"
EnforceUniqueItems="True">
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_msim" />
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_shell" />
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_standardshell" /
>
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_touch" />
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_ddraw" />
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_wcetk" />
<Feature Name="Item" CatalogItemId="Item:MS:sysgen_coreloc" />
</FeatureCollection>
System always gets a "Data Abort" exception at the point of ~20
minutes running. The call stack of the exception is below.
K.COREDLL!wcslen + 4 bytes
GWES!GweMemory_t::NewDuplicateString() line 231 + 8 bytes
GWES!ListBox::CreateCopyOfString() line 1211 + 16 bytes
GWES!ListBox::InsertItem() line 1358 + 16 bytes
GWES!ListBox::ListWndProc() line 6427
GWES!CWindow::CallWindowProcW_I(CePtr_t<long (__cdecl*)(HWND__
*,unsigned int,unsigned int,long)> {...}, SendMsgEntry_t * 0xc0237cf8)
line 2448 + 24 bytes
GWES!MsgQueue::DispatchReceivedMsg() line 2917 + 48 bytes
GWES!MsgQueue::GetEvent(unsigned int 0x8822a450, tagMSG * 0x8824cffc)
line 3133
GWES!MsgQueue::SendMessageWithOptions(unsigned int 0x00000000) line
3829 + 36 bytes
GWES!MsgQueue::SendMessageW_I() line 5012 + 32 bytes
GWES!MsgQueue::SendMessageW_E() line 4950
COREDLL!SendMessageW() line 2916
SOFTKB!SIP_IOControl(unsigned char * 0x00000000, unsigned long
0x00090000, unsigned long * 0x00000009) line 211
UDEVICE!UserDriver::Ioctl() line 456 + 64 bytes
UDEVICE!00011c48()
KERNEL!NKHandleCall() line 1950 + 12 bytes
K.COREDLL!DirectHandleCall() line 76
K.COREDLL!xxx_DeviceIoControl(void * 0x00000000, unsigned long
0x00000000, unsigned long * 0x00000000, _OVERLAPPED * 0x00000000) line
33
DEVMGR!CReflector::SendIoControl(void * 0x00000000, unsigned long
0x00000000, unsigned long * 0x00000000) line 304
DEVMGR!CFileFolder::Control(void * 0x00000000, unsigned long
0x00000000, unsigned long * 0x00000000) line 930
DEVMGR!Reflector_Control(void * 0x00000000, unsigned long 0x00000000,
unsigned long * 0x00000000) line 1008
DEVMGR!DM_DevDeviceIoControl(void * 0x00000000, unsigned long
0x00000006, unsigned long * 0xd1fbf89c, _OVERLAPPED * 0x00000000) line
453 + 52 bytes
COREDLL!xxx_DeviceIoControl(void * 0x88230a5c, unsigned long
0xd2070000, unsigned long * 0xd2060000, _OVERLAPPED * 0xd22dfcc8) line
33
COREDLL!SipImmSetActiveContextNotify(HKL__ * 0x8c2f0138) line 589
COREDLL!ImmSetActiveContext(struct HWND__ *,unsigned long,int) + 528
bytes
K.COREDLL!xxx_PerformCallBack4() line 293
K.COREDLL!ImmSetActiveContextInOwnerProcess() line 570 + 20 bytes
K.COREDLL!ImmSetActiveContext(struct HWND__ *,unsigned long,int) + 76
bytes
GWES!ImmThunk_ImmSetActiveContext() line 217
GWES!MsgQueue::PreprocessReceivedMsg(long 0x00000000, bool *
0xd1fbfa65) line 1357
GWES!MsgQueue::SendMessageWithOptions(unsigned int 0x00000000) line
3753
GWES!MsgQueue::SetUicFocus() line 1041
GWES!SetFocus_I() line 1696 + 16 bytes
COREDLL!DefWindowProcW() line 3133
CLIENTSIDE!000193dc()
K.COREDLL!xxx_PerformCallBack4() line 293
GWES!WindowProcCallback(unsigned int 0xd1fbfc30, long 0xc00a8694, bool
* 0x03660002) line 2312 + 20 bytes
GWES!CWindow::CallWindowProcW_I(CePtr_t<long (__cdecl*)(HWND__
*,unsigned int,unsigned int,long)> {...}, SendMsgEntry_t * 0x00018f84)
line 2473 + 44 bytes
GWES!MsgQueue::SendMessageWithOptions(unsigned int 0x00000000) line
3770 + 44 bytes
GWES!MsgQueue::SetUicActiveWindow() line 708
GWES!MsgQueue::PreprocessReceivedMsg(long 0x000000e0, bool *
0xd1fbfd64) line 1342
GWES!MsgQueue::GetEvent(unsigned int 0xd1fbfd68, tagMSG * 0x700232ac)
line 3191
GWES!MsgQueue::GetMessageW_I() line 5331
COREDLL!GetMessageW() line 2927
CLIENTSIDE!0001959c()
COREDLL!ThreadBaseFunc() line 1097
Looking at the call stack, we can find that the exception has
something to do with SIP. When I remove the catalog item "Software-
based Input Panel (SIP) --> SIP for Small Screens (SYSGEN_MSIM)" from
the run-time image, system can pass the stress test, running over 800
minutes with 99% Test Pass Percentage.
Does anyone experience this problem? Any comments will be appreciated.
Regards,
Shawn