<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>asyndetic.com &#187; windows</title>
	<atom:link href="http://www.asyndetic.com/blog/tag/windows/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.asyndetic.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 06:49:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>FTDI USB Serial Port Enumeration on Windows</title>
		<link>http://www.asyndetic.com/blog/2010/04/11/ftdi-usb-serial-port-enumeration-on-windows/</link>
		<comments>http://www.asyndetic.com/blog/2010/04/11/ftdi-usb-serial-port-enumeration-on-windows/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 01:10:56 +0000</pubDate>
		<dc:creator>Dan Savilonis</dc:creator>
				<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[ftdi]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[uart]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://asyndetic.com/blog/?p=56</guid>
		<description><![CDATA[FTDI is one of the two major manufacturers of USB UART chips, and they provide regularly updated and reliable drivers. Most devices I&#8217;ve used don&#8217;t bother to implement a custom VID/PID, so you can just use the drivers directly from FTDI. When you connect a large number of USB serial ports, it is often difficult to determine [...]]]></description>
			<content:encoded><![CDATA[<p>FTDI is one of the two major manufacturers of USB UART chips, and they provide regularly updated and reliable drivers. Most devices I&#8217;ve used don&#8217;t bother to implement a custom VID/PID, so you can just use the drivers directly from FTDI.</p>
<p>When you connect a large number of USB serial ports, it is often difficult to determine which port belongs to which physical connector, so FTDI has implemented a mechanism that persists COM port enumeration on Windows. The mechanism works by uniquely identifying a port based on the serial number stored in an eeprom associated with the device. Unfortunately, it turns out to be <strong>really</strong> persistent and I spent half a day trying to unpersist the mapping after I plugged in a second device to test it. The result was my COM port which I wante to be COM3 &#8211; COM11 became COM21-COM29. While there&#8217;s nothing really wrong with this, I wanted the lower ports back.</p>
<h2>FTDI Workaround for a Single Device</h2>
<p>FTDI presents a workaround in the App Note <a href="http://www.ftdichip.com/Documents/AppNotes/AN_107_AdvancedDriverOptions_AN_000073.pdf">Advanced Driver Options</a> for using a single device. The Ignore Hardware Serial Number flag will force all devices to be treated as the same device and enumerate from the lowest available COM port. This is only an option if you want to connect just one device.</p>
<h2>Removing Persistent Enumeration Entirely</h2>
<p>Since I found no documentation on how to wipe out all persistent enumeration (ftclean doesn&#8217;t do it), I started searching the registry. The persistent enumeration appears to be stored by both the serenum driver and the ftdibus driver.</p>
<ol>
<li>Run <a href="http://www.ftdichip.com/Resources/Utilities.htm">FTClean</a> to remove the driver and existing COM ports</li>
<li>Delete the FTDI enumeration registry settings
<ol>
<li>Remove HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FTDIBUS</li>
<li>Remove HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FTDIBUS</li>
<li>Remove HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\FTSER2K</li>
</ol>
</li>
<li>Delete serenum enumeration only for the ports you wish to remove
<ol>
<li>Under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\serenum\Enum, remove each REG_SZ entry for sequential COM ports you want to remove. Then, adjust the Count REG_DWORD and NextInstance REG_DWORD to point to the next available COM port.</li>
</ol>
</li>
</ol>
<p>I don&#8217;t know if all of these steps are strictly necessary, as I haven&#8217;t yet tried to reduce the procedure. However, this should eliminate all persistent mapping and the next time you install an FTDI device, the serial ports should start enumerating again from the number specified in the NextInstance value.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.asyndetic.com%2Fblog%2F2010%2F04%2F11%2Fftdi-usb-serial-port-enumeration-on-windows%2F&amp;title=FTDI%20USB%20Serial%20Port%20Enumeration%20on%20Windows" id="wpa2a_2"><img class="colorbox-56"  src="http://asyndetic.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.asyndetic.com/blog/2010/04/11/ftdi-usb-serial-port-enumeration-on-windows/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debugging USB Device Installation on Windows</title>
		<link>http://www.asyndetic.com/blog/2010/02/06/debugging-usb-device-installation-on-windows/</link>
		<comments>http://www.asyndetic.com/blog/2010/02/06/debugging-usb-device-installation-on-windows/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 07:37:35 +0000</pubDate>
		<dc:creator>Dan Savilonis</dc:creator>
				<category><![CDATA[troubleshooting]]></category>
		<category><![CDATA[device_drivers]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://asyndetic.com/blog/?p=6</guid>
		<description><![CDATA[Recently, I ran into a problem trying to install a USB keyboard on Windows XP at work. Given that HID devices always just work with Windows, I wasn&#8217;t quite sure how to go about troubleshooting such a ridiculous problem. My first step was to investigate the problem, repeating the process to see what went wrong. [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I ran into a problem trying to install a USB keyboard on Windows XP at work. Given that HID devices always just work with Windows, I wasn&#8217;t quite sure how to go about troubleshooting such a ridiculous problem.</p>
<p>My first step was to investigate the problem, repeating the process to see what went wrong. When I plugged in the keyboard, it would show up as Unknown Device. Searching for drivers would fail. I already had another USB keyboard installed, and this one worked fine. So I tried installing a third keyboard, this time a fancy multimedia keyboard, and it also exhibited the same behavior.</p>
<p>It turned out that my keyboard was not just a Human Interface Device, despite its appearance. It was actually a USB composite device and hub. I spent half a day trying to figure out what was wrong, and ended up learning a lot more about Windows USB driver installation.</p>
<p>Microsoft provides several MSKB articles on troubleshooting USB driver installation, most of which are useless. However, <a href="http://support.microsoft.com/kb/314464">KB314464</a> contains the key to the problem:  setupapi.log. This log file records installations of drivers and the process Windows went through to determine how to match a driver to newly discovered device. Once I opened this file and watched the install fail for the keyboard, it became obvious that it was searching for a USB composite device driver, but not finding one. It turned out my usb.inf was missing. I don&#8217;t know how it got deleted, but it did. Once I copied over a replacement from another PC, the keyboard installed perfectly.</p>
<div id="attachment_9" class="wp-caption aligncenter" style="width: 310px"><a href="http://asyndetic.com/blog/wp-content/uploads/2010/02/lik_devtree.png"><img class="size-medium wp-image-9  colorbox-6" src="http://asyndetic.com/blog/wp-content/uploads/2010/02/lik_devtree-300x236.png" alt="" width="300" height="236" /></a><p class="wp-caption-text">Device Tree for Logitech Illuminated Keyboard (Windows 7)</p></div>
<p>Here&#8217;s what happened with the when I plugged in the keyboard:</p>
<pre class="brush: plain; title: ; notranslate">
[2010/01/04 10:11:28 1276.7 Driver Install]
#-019 Searching for hardware ID(s): usb\vid_046d&amp;pid_c318&amp;rev_5501,usb\vid_046d&amp;pid_c318
#-018 Searching for compatible ID(s): usb\devclass_00&amp;subclass_00&amp;prot_00,usb\devclass_00&amp;subclass_00,usb\devclass_00,usb\composite
#-198 Command line processed: C:\WINNT\system32\services.exe
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
#W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
</pre>
<p>Windows failed to find an exact driver for the vid/pid combination and tried to find a compatible driver based on the device class. The device is a <strong>usb\composite</strong> device, which should map to a standard Windows driver, but it instead reported that the search failed. At this point, I should have looked for an <em>inf </em>file with this hwid string: <strong>usb\composite</strong>. If I had, I would have discovered it missing in my directory, but present in another machine where I could install a keyboard, in <em>usb.inf</em>.</p>
<p>The <em>Generic</em> <a href="http://msdn.microsoft.com/en-us/library/ms794357.aspx">Models</a> section of <em>usb.inf</em> includes the hwid:</p>
<pre class="brush: plain; title: ; notranslate">
; =================== Generic ==================================

[Generic.Section]
%USB\COMPOSITE.DeviceDesc%=Composite.Dev,USB\COMPOSITE
%USB\UNKNOWN.DeviceDesc%=BADDEVICE.Dev,USB\UNKNOWN
</pre>
<p>This directs to <a href="http://msdn.microsoft.com/en-us/library/ms794553.aspx">DDInstall</a> sections <em>Composite.Dev.*</em>:</p>
<pre class="brush: plain; title: ; notranslate">
[Composite.Dev]
AddReg=CommonClassParent.AddReg
CopyFiles=CommonClassParent.CopyFiles

; For Windows NT...

[Composite.Dev.NT]
CopyFiles=CommonClassParent.CopyFiles
DelReg=Composite.DelReg.NT

[Composite.DelReg.NT]
HKR,,EnumPropPages32

[Composite.Dev.NT.Services]
AddService = usbccgp, 0x00000002, CommonClassParent.AddService
</pre>
<p>The <em>Composite.Dev</em> section is actually for Windows 2000 and the decorator<em> .NT</em> on <em>Composite.Dev.NT</em> specifies a generic driver for Windows XP and later.</p>
<p>Once I placed the <em>usb.inf</em> file back into the %SYSTEMDIR%\inf directory, installation of the <strong>USB Composite Device</strong> magically worked:</p>
<pre class="brush: plain; title: ; notranslate">
[2010/01/04 13:10:39 1264.3 Driver Install]
#-019 Searching for hardware ID(s): usb\vid_046d&amp;pid_c318&amp;rev_5501,usb\vid_046d&amp;pid_c318
#-018 Searching for compatible ID(s): usb\devclass_00&amp;subclass_00&amp;prot_00,usb\devclass_00&amp;subclass_00,usb\devclass_00,usb\composite
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;USB\COMPOSITE&quot; in C:\WINNT\inf\usb.inf; Device: &quot;USB Composite Device&quot;; Driver: &quot;USB Composite Device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard USB Host Controller)&quot;; Section name: &quot;Composite.Dev&quot;.
#I023 Actual install section: [Composite.Dev.NT]. Rank: 0x00002003. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [Composite.Dev] in &quot;c:\winnt\inf\usb.inf&quot;.
#I320 Class GUID of device remains: {36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;USB\VID_046D&amp;PID_C318\5&amp;1AF8ED3F&amp;0&amp;1&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [Composite.Dev.NT.Interfaces] from &quot;c:\winnt\inf\usb.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;USB\VID_046D&amp;PID_C318\5&amp;1AF8ED3F&amp;0&amp;1&quot;.
#I121 Device install of &quot;USB\VID_046D&amp;PID_C318\5&amp;1AF8ED3F&amp;0&amp;1&quot; finished successfully.
</pre>
<p>After that, the remaining the remaining device tree hierarchy installed successfully and the keyboard was enabled:</p>
<pre class="brush: plain; title: ; notranslate">
[2010/01/04 13:10:43 1264.7 Driver Install]
#-019 Searching for hardware ID(s): usb\vid_046d&amp;pid_c318&amp;rev_5501&amp;mi_00,usb\vid_046d&amp;pid_c318&amp;mi_00
#-018 Searching for compatible ID(s): usb\class_03&amp;subclass_01&amp;prot_01,usb\class_03&amp;subclass_01,usb\class_03
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;USB\Class_03&amp;SubClass_01&quot; in C:\WINNT\inf\input.inf; Device: &quot;USB Human Interface Device&quot;; Driver: &quot;USB Human Interface Device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard system devices)&quot;; Section name: &quot;HID_Inst&quot;.
#I023 Actual install section: [HID_Inst.NT]. Rank: 0x00003101. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [HID_Inst] in &quot;c:\winnt\inf\input.inf&quot;.
#I320 Class GUID of device remains: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_00\6&amp;7451BA8&amp;0&amp;0000&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [HID_Inst.NT.Interfaces] from &quot;c:\winnt\inf\input.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_00\6&amp;7451BA8&amp;0&amp;0000&quot;.
#I121 Device install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_00\6&amp;7451BA8&amp;0&amp;0000&quot; finished successfully.
[2010/01/04 13:10:47 1264.11 Driver Install]
#-019 Searching for hardware ID(s): usb\vid_046d&amp;pid_c318&amp;rev_5501&amp;mi_01,usb\vid_046d&amp;pid_c318&amp;mi_01
#-018 Searching for compatible ID(s): usb\class_03&amp;subclass_00&amp;prot_02,usb\class_03&amp;subclass_00,usb\class_03
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;USB\Class_03&quot; in C:\WINNT\inf\input.inf; Device: &quot;USB Human Interface Device&quot;; Driver: &quot;USB Human Interface Device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard system devices)&quot;; Section name: &quot;HID_Inst&quot;.
#I023 Actual install section: [HID_Inst.NT]. Rank: 0x00003202. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [HID_Inst] in &quot;c:\winnt\inf\input.inf&quot;.
#I320 Class GUID of device remains: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_01\6&amp;7451BA8&amp;0&amp;0001&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [HID_Inst.NT.Interfaces] from &quot;c:\winnt\inf\input.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_01\6&amp;7451BA8&amp;0&amp;0001&quot;.
#I121 Device install of &quot;USB\VID_046D&amp;PID_C318&amp;MI_01\6&amp;7451BA8&amp;0&amp;0001&quot; finished successfully.
[2010/01/04 13:10:51 1264.15 Driver Install]
#-019 Searching for hardware ID(s): hid\vid_046d&amp;pid_c318&amp;rev_5501&amp;mi_00,hid\vid_046d&amp;pid_c318&amp;mi_00,hid_device_system_keyboard,hid_device_up:0001_u:0006,hid_device
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;HID_DEVICE_SYSTEM_KEYBOARD&quot; in C:\WINNT\inf\keyboard.inf; Device: &quot;HID Keyboard Device&quot;; Driver: &quot;HID Keyboard Device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard keyboards)&quot;; Section name: &quot;HID_Keyboard_Inst&quot;.
#I023 Actual install section: [HID_Keyboard_Inst.NT]. Rank: 0x00001002. Effective driver date: 07/01/2001.
#I022 Found &quot;HID\VID_046D&amp;PID_C318&amp;Mi_00&quot; in C:\WINNT\inf\oem52.inf; Device: &quot;Logitech HID-Compliant Keyboard&quot;; Driver: &quot;Logitech HID-Compliant Keyboard&quot;; Provider: &quot;Logitech&quot;; Mfg: &quot;Logitech&quot;; Section name: &quot;HIDFiltInstWakeEnbl&quot;.
#I023 Actual install section: [HIDFiltInstWakeEnbl.NT]. Rank: 0x00000001. Effective driver date: 06/17/2009.
#I022 Found &quot;HID\VID_046D&amp;PID_C318&amp;Mi_00&quot; in C:\WINNT\inf\oem52.inf; Device: &quot;Logicool HID-Compliant Keyboard (106 keys)&quot;; Driver: &quot;Logicool HID-Compliant Keyboard (106 keys)&quot;; Provider: &quot;Logitech&quot;; Mfg: &quot;Logicool&quot;; Section name: &quot;HIDFiltInstWakeEnblJ&quot;.
#I023 Actual install section: [HIDFiltInstWakeEnblJ.NT]. Rank: 0x00000001. Effective driver date: 06/17/2009.
#I022 Found &quot;HID_DEVICE&quot; in C:\WINNT\inf\input.inf; Device: &quot;HID-compliant device&quot;; Driver: &quot;HID-compliant device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard system devices)&quot;; Section name: &quot;HID_Raw_Inst&quot;.
#I023 Actual install section: [HID_Raw_Inst.NT]. Rank: 0x00001004. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [HIDFiltInstWakeEnbl] in &quot;c:\winnt\inf\oem52.inf&quot;.
#I320 Class GUID of device remains: {4D36E96B-E325-11CE-BFC1-08002BE10318}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#I063 Selected driver installs from section [HIDFiltInstWakeEnbl] in &quot;c:\winnt\inf\oem52.inf&quot;.
#I320 Class GUID of device remains: {4D36E96B-E325-11CE-BFC1-08002BE10318}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_00\7&amp;2C4789AA&amp;0&amp;0000&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [HIDFiltInstWakeEnbl.NT.Interfaces] from &quot;c:\winnt\inf\oem52.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_00\7&amp;2C4789AA&amp;0&amp;0000&quot;.
#I121 Device install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_00\7&amp;2C4789AA&amp;0&amp;0000&quot; finished successfully.
[2010/01/04 13:10:56 1264.19 Driver Install]
#-019 Searching for hardware ID(s): hid\vid_046d&amp;pid_c318&amp;rev_5501&amp;mi_01&amp;col01,hid\vid_046d&amp;pid_c318&amp;mi_01&amp;col01,hid_device_system_consumer,hid_device_up:000c_u:0001,hid_device
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;HID_DEVICE_UP:000C_U:0001&quot; in C:\WINNT\inf\hidserv.inf; Device: &quot;HID-compliant consumer control device&quot;; Driver: &quot;HID-compliant consumer control device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;Microsoft&quot;; Section name: &quot;HIDSystemConsumer&quot;.
#I023 Actual install section: [HIDSystemConsumer]. Rank: 0x00001003. Effective driver date: 07/01/2001.
#I022 Found &quot;HID_DEVICE&quot; in C:\WINNT\inf\input.inf; Device: &quot;HID-compliant device&quot;; Driver: &quot;HID-compliant device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard system devices)&quot;; Section name: &quot;HID_Raw_Inst&quot;.
#I023 Actual install section: [HID_Raw_Inst.NT]. Rank: 0x00001004. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [HIDSystemConsumer] in &quot;c:\winnt\inf\hidserv.inf&quot;.
#I320 Class GUID of device remains: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL01\7&amp;3DCDBE1&amp;0&amp;0000&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [HIDSystemConsumer.Interfaces] from &quot;c:\winnt\inf\hidserv.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL01\7&amp;3DCDBE1&amp;0&amp;0000&quot;.
#I121 Device install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL01\7&amp;3DCDBE1&amp;0&amp;0000&quot; finished successfully.
[2010/01/04 13:10:58 1264.23 Driver Install]
#-019 Searching for hardware ID(s): hid\vid_046d&amp;pid_c318&amp;rev_5501&amp;mi_01&amp;col02,hid\vid_046d&amp;pid_c318&amp;mi_01&amp;col02,hid_device_up:ff00_u:0001,hid_device
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;HID_DEVICE&quot; in C:\WINNT\inf\input.inf; Device: &quot;HID-compliant device&quot;; Driver: &quot;HID-compliant device&quot;; Provider: &quot;Microsoft&quot;; Mfg: &quot;(Standard system devices)&quot;; Section name: &quot;HID_Raw_Inst&quot;.
#I023 Actual install section: [HID_Raw_Inst.NT]. Rank: 0x00001003. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [HID_Raw_Inst] in &quot;c:\winnt\inf\input.inf&quot;.
#I320 Class GUID of device remains: {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL02\7&amp;3DCDBE1&amp;0&amp;0001&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [HID_Raw_Inst.NT.Interfaces] from &quot;c:\winnt\inf\input.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL02\7&amp;3DCDBE1&amp;0&amp;0001&quot;.
#I121 Device install of &quot;HID\VID_046D&amp;PID_C318&amp;MI_01&amp;COL02\7&amp;3DCDBE1&amp;0&amp;0001&quot; finished successfully.
[2010/01/04 13:10:59 1264.29]
#-198 Command line processed: C:\WINNT\system32\services.exe
#I140 Installing device class: &quot;DriverInterface&quot; {D41DD63A-1395-4419-AE14-A534F5F2AD29}.
#I141 Class install completed with no errors.
[2010/01/04 13:10:59 1264.27 Driver Install]
#-019 Searching for hardware ID(s): logitech_raw_pdo
#-198 Command line processed: C:\WINNT\system32\services.exe
#I022 Found &quot;LOGITECH_RAW_PDO&quot; in C:\WINNT\inf\oem53.inf; Device: &quot;Logitech Driver Interface&quot;; Driver: &quot;Logitech Driver Interface&quot;; Provider: &quot;Logitech&quot;; Mfg: &quot;Logitech&quot;; Section name: &quot;NullInst&quot;.
#I023 Actual install section: [NullInst.NT]. Rank: 0x00000000. Effective driver date: 06/17/2009.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [NullInst] in &quot;c:\winnt\inf\oem53.inf&quot;.
#I320 Class GUID of device remains: {D41DD63A-1395-4419-AE14-A534F5F2AD29}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of &quot;{C1FCC185-55B3-4E00-814B-C588A13525E1}\VID_046D&amp;PID_C318&amp;REV_5501&amp;MI_00&amp;HIDFILT\8&amp;AEA4138&amp;0&amp;00&quot;.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [NullInst.NT.Interfaces] from &quot;c:\winnt\inf\oem53.inf&quot;.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of &quot;{C1FCC185-55B3-4E00-814B-C588A13525E1}\VID_046D&amp;PID_C318&amp;REV_5501&amp;MI_00&amp;HIDFILT\8&amp;AEA4138&amp;0&amp;00&quot;.
#I121 Device install of &quot;{C1FCC185-55B3-4E00-814B-C588A13525E1}\VID_046D&amp;PID_C318&amp;REV_5501&amp;MI_00&amp;HIDFILT\8&amp;AEA4138&amp;0&amp;00&quot; finished successfully.
</pre>
<h3>USB Driver Installation Troubleshooting Steps for Windows XP / Server 2003</h3>
<ol>
<li>Look in device manager to determine the device that failed to install (with a yellow exclamation mark <a href="http://asyndetic.com/blog/wp-content/uploads/2010/02/windevmanager_ye.png"><img class="alignnone size-full wp-image-25 colorbox-6" title="windevmanager_ye" src="http://asyndetic.com/blog/wp-content/uploads/2010/02/windevmanager_ye.png" alt="" width="14" height="17" /></a>)</li>
<li>View the properties to determine its hardware and compatible ids</li>
<li>Search <em>setupapi.log</em> for the device installation and examine the output</li>
<li>If no driver was found, search the <em>%SystemRoot%\Inf </em>directory for the vid/pid or compatible id.</li>
</ol>
<p>In a future article, I will cover the differences for newer versions of Windows (Vista, Server 2008, 7).</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.asyndetic.com%2Fblog%2F2010%2F02%2F06%2Fdebugging-usb-device-installation-on-windows%2F&amp;title=Debugging%20USB%20Device%20Installation%20on%20Windows" id="wpa2a_4"><img class="colorbox-6"  src="http://asyndetic.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.asyndetic.com/blog/2010/02/06/debugging-usb-device-installation-on-windows/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
