Search This Blog

2008-09-20

Hacking Windows Device Manager to troubleshoot Logitech Quickcam Communicate STX web cam problem

OS: Windows XP SP3
Webcam: Logitech Quickcam Communicate STX
Hacking highlight: Delete ole2.dll, view ghosted device in Device Manager

2 years ago, after I upgraded the webcam driver, the video device is unable to activate. Only the audio mic works.

During that time, I upgraded other drivers together, like NVidia VGA, Windows XP Service Pack 2, etc. So I can't tell precisely what caused the webcam does not able to work.

I send 2 e-mail to Logitech support, but they never return. It is so troublesome to raise a ticket, where it ask produce code, and serial number. This information is not printed on the webcam itself. There is a paper sticker near to the USB connector, which provide some information. For the rest of the info, I have to dig out the original box. I spend 15 minutes looking at the webcam camera body and clueless where it is.

Last month, I acquired an old 20 GB hard disk, and installed a new Windows XP into it. To proof that it is driver or file registration problem in my original XP, I tested in this new XP. It is correct that the hardware is good.

Last 3 months, I upgraded the motherboard to Intel CPU Quad core 2.5 GHz. My hope of fixing the webcam failed as well. This upgrade isolated the chipset driver problem, and USB port.

Other things that I have tried but unsuccessful are:
  1. Uninstall current version, and install original version comes with box
  2. Download older version, version 10, from Logitech homepage. Uninstall and install
  3. Download latest version, version 11 from Logitech homepage. Uninstall and install
  4. Go to Device Manager to note down all files used by the webcam. Uninstall, and delete all the files listed in Device Manager
  5. Run regedit, and delete all registry under Logitech Quickcam Communicate STX
  6. Run registry cleaner software to clean up all invalid registry
  7. Run Device Manager, and click on View - Show hidden devices, but don't find any related bad device
Yesterday, I found that in Microsoft Help and Support homepage, there is a article about ghosted devices in Windows Device Manager. By following this procedure, I manage to get the webcam recognize and working (it was able to recognize, but complain hardware is giving problem)
  1. Run Command Prompt cmd.exe
  2. SET DEVMGR_SHOW_NONPRESENT_DEVICES=1
  3. start devmgmt.msc
  4. Click on View - Show hidden devices
  5. Remove all gray out USB devices, USB Root Hub, USB Composite Device, USB Host Controller belongs to previous AMD motherboard, all invalid and old device under "Sound, video and game controllers" and all devices under "Imaging devices"
  6. Install current version 11 Logitech QuickCam driver, and reboot. Failed
  7. Uninstall version 11, and reboot for next trial
  8. Install original version 10 Logitech QuickCam driver
  9. Installer complain about write permission error to file C:\windows\system32\ole2.dll
  10. Delete c:\windows\system32\ole2.dll
  11. Click Retry button to proceed with the installation
  12. QuickCam is able to initialize now
  13. Uninstall version 10, and reboot
  14. Install version 11, and reboot
ole2.dll is installed again by Logitech driver, so I don't need to restore it. I am not sure whether the resolution is by removing ghosted devices under Windows Device Manager, or ole2.dll that is not properly registered to XP. I further verify ole2.dll file to compare the size. The size is identical before and after install. So it could be some of the device driver installation replaced ole2.dll with older version, and registered it. Then Logitech device driver will not register it again if file exists. Since this is standard Windows DLL, during uninstallation it won't be remove. Regardless how many times I install the driver, the installer will skip the registration (file is correct size) when file version meet the requirement.

Information About OLE
ole2.dll is a standard DLL file used by Windows Microsoft Foundation Class (MFC) since Windows 3.1. It is used for sharing of object component and expand significantly during Windows 95. It stands for Object Linking and Embedding. In practical, it contains list box, text box, pull down menu, clipboard (for copy, paste, cut), camera, mic, multimedia components, etc. When developer write the driver, they specify which version of OLE2 to use for they program. The version will changed by hotfix, service pack, software installation, and device driver installation or uninstallation. Since all these of activities happen on back-end and done by installer, we offen don't know whether it is overwritten, unless the installer give a detail report of what it copy, delete and replace. More information can be found in Microsoft knowledge base http://support.microsoft.com/kb/86008

Since Windows software and driver installation is using packaged installer, there are many files that we don't know whether it is being overwritten, or re-register. We need to have some 3rd party auditing software to audit what files and registry key the installer touch. CleanSweep is one of this product I used in Windows 95 before. However, this product register too much information, and prompt too many questions. Most of the question it prompts are valid, but only the device driver developer can answer whether those files are written by them or standard Windows file. Other questions that CleanSweep need is which version of standard Windows file (DLL, or EXE) is require for its driver. So 50% of the time, if I run into driver installation problem, file conflict, or older/newer required file being replaced and need by another device, CleanSweep is able to help by providing me the log. Without it, I don't have a log, but life is easier as software and driver installation do not need to answer tons of questions. It takes much longer to resolve driver issue. With CleanSweep, I still have 50% unable to resolve it as well with such much pain.

Almost all modern devices, the installer does not only install the required device driver. They always include several utilities, or additional software during installation. For example, Logitech Quickcam install Logitech Print Service in old version 10 which allows user to submit the photo taken by Quickcam online for photo printing. Microsoft Mouse install IntelliPoint 6.3 to program additional mouse buttons. Logitech mouse install SetPoint 4.60 to customize the mouse, including additional air movement action detection for the current optical mouse.

Interesting Logitech air movement such as raise the mouse up, press Play button on the mouse. Move left is play previous track, move right play next track, circle right is resume play, and circle left is pause play.

No comments:

Blog Archive