In certain instances, a Still Image Architecture (STI) application that successfully locked a device may stop responding (hang) indefinitely when you use the UnLockDevice
method to try to unlock the device.
This problem occurs because the Windows Image Acquisition (WIA) service is deadlocked at this time and cannot process any more WIA or STI requests.
To resolve this problem, obtain the latest service pack for Windows XP. For additional information, click the following article number to view the article in the
Microsoft Knowledge Base:
How to Obtain the Latest Windows XP Service Pack
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone
tab in the Date and Time tool in Control Panel.
Date Time Version Size File Name
11-Jun-2002 10:29 22.214.171.124 3,584 Spmsg.dll
19-Jun-2002 15:48 5.1.2600.48 61,952 Sti.dll
11-Jun-2002 15:50 5.1.2600.48 314,368 Wiaservc.dll
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows XP Service Pack 1.
This problem occurs because of a bad assumption about which thread ID the lock belongs to. The WIA service uses the thread ID of the remote procedure call (RPC) instead of the thread ID of the client. Because RPC uses a thread pool, incoming requests may be processed on different threads, which causes the thread ID mismatch.