# HG changeset patch # User Oleksandr Gavenko # Date 1324656287 -7200 # Node ID 60db6debab94010fb7ef31627da3961f48a35808 # Parent dfcec55a12404192ccc787c47e69bec8e36cb248# Parent d8fa153ef4d49ff5bcfdbe0034f47e5037fea974 merged diff -r dfcec55a1240 -r 60db6debab94 date.rst --- a/date.rst Fri Dec 23 00:02:50 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ --*- mode: outline; coding: utf-8; -*- - -* System timer and system time. - -** Windows. - -Windows assume that system timer display locale time. - -** Debian. - -UTC=no - system timer display locale time, UTC=yes - UTC time. - - $ cat /etc/default/rcS - UTC=no -or - UTC=yes - -If system dual boot with Windows you must set UTC=no. - -* Getting current date/time. - - $ date +"%Y-%m-%d %H:%M:%S" - -* Setting current date/time. - - $ sudo date --set="2009-02-22 12:12:00" +"%Y-%m-%d %H:%M:%S" - -Or set utc time: - - $ sudo date --utc --set="2009-02-22 12:12:00" +"%Y-%m-%d %H:%M:%S" - -May be prefer use ntpdate(8) command. - -* Get timezone. - -System wide configuration: - - $ cat /etc/timezone - -* Get list of supported timezone. - - $ tzselect - -* Set timezone. - - $ sudo tzconfig -... - -Or using tzselect: - - $ sudo tzselect -... - -** Debian Lenny. - - $ sudo dpkg-reconfigure tzdata - -* About timestamp. - - http://en.wikipedia.org/wiki/Timestamp - http://en.wikipedia.org/wiki/Unix_time - http://en.wikipedia.org/wiki/Leap_second - -** Get timestamp. - -Current timestamp: - - $ date +%s - -Timestamp for specific date/time: - - $ date -d '2010-12-11' +%s - $ date -d '2010-12-11 23:59:59' +%s - -** Convert unix timestamp to date. - - $ date -d '1970-01-01 + 1234567890 seconds' - diff -r dfcec55a1240 -r 60db6debab94 driver-win.rst --- a/driver-win.rst Fri Dec 23 00:02:50 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ --*- mode: outline; coding: utf-8; -*- - -* About. - - microsoft.public.development.device.drivers - NNTP driver development group at msnews.microsoft.com:119 - http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx - Web-interface to NNTP forum - -* Which version exist? - - - VxD - Windows 3.x and Windows 9x - - Windows Driver Model (WDM) - Windows 98, Windows 98 Second Edition, Windows Me, Windows - 2000, Windows XP, Windows Server 2003 and Windows Vista (for - backwards compatibility) - - Windows Driver Foundation (WDF) - Windows 2000 and later - -* VxD. - -See - - http://en.wikipedia.org/wiki/VxD - -* WDM. - -See - - http://en.wikipedia.org/wiki/Windows_Driver_Model - -* WDF. - -See - - http://en.wikipedia.org/wiki/Windows_Driver_Foundation - -* Tools. - -** Msinfo32.exe - -Windows XP/2003 System Information Tool. - -See - - http://support.microsoft.com/kb/308549 - -** Sysinternals. - -*** WinObj. - -Winobj is a program that lets you browse the Windows NT Object Manager -namespace. - -** devtree. - -The DeviceTree V2.12 utility is a Windows XP/Server 2003 utility written by -OSR, that allows the user the ability to display the drivers and devices -loaded in 2 different views. The first view Driver View the user sees a list -of all the drivers loaded in kernel mode and all the devices that those -drivers have created. In the second view PnP View the user sees a list of all -the devices in the system from that of Plug and Play Manager (PnP). - -** Microsoft DDK. - -*** DevCon. - -Supported device classes: - - cmd> devcon.exe classes - -Which files used by specific driver (with "*" prints list of files for all drivers): - - cmd> devcon.exe driverfiles * - -Device ID (names included): - - cmd> devcon.exe hwids * - -Device status (running/stoped): - - cmd> devcon.exe status * - -** USB Command Verifier. - -All USB peripherals are required to pass the Device Framework tests in order -to gain certification. - - http://www.usb.org/developers/tools/ - -* Files. - -** Windows 98 SE/ME. - - * .386 - VxD driver under Windows 3.x - * .vxd - VxD driver under Windows 95 - -** Windows NT (2000/XP/2003). - - * .inf - Stored in %Windir%\Inf. - * .pnf - Precompiled INF File. Stored in %Windir%\Inf. - -* Driver type. - -** CDC. - - http://support.microsoft.com/kb/837637 - How to use or to reference the Usbser.sys driver from - universal serial bus (USB) modem .inf files. - -* Driver class. - -See - - http://msdn.microsoft.com/en-us/library/ms791134.aspx - System-Supplied Device Setup Classes - http://msdn.microsoft.com/en-us/library/ff538820.aspx - Drivers for the Supported USB Device Classes - -* How list drivers? - -Set environment devmgr_show_nonpresent_devices to 1 and run Device Manager, -select "View" --> "Show hidden devices". - -* How install drivers? - -** dpinst. - -Driver Install Frameworks (DIFx) tools allow installing driver under following -OSes: - - Windows Server 2008 R2 - Windows 7 - Windows Server 2008 - Windows Vista - Windows Server 2003 - Windows XP - Windows 2000 - -It consist from API (from library, DIFxAPI, DIFxApp) and command line tool -(DPInst) which can be found in WDK and their licence allow redistribution. - - http://www.microsoft.com/whdc/driver/install/DIFxFAQ.mspx - Information about Driver Install Frameworks Tools - http://msdn.microsoft.com/ru-ru/magazine/cc302206%28en-us%29.aspx - If you update any drivers in Device Manager - %windir%\system32\ReinstallBackups folder is created with - backups of the old drivers. - -** devcon. - -This command-line specifies the location of the driver package's INF file (c:\toaster\toastpkg.inf) -and the toaster device's hardware identifier (ID), which is specified within the INF file. - - cmd# devcon.exe install c:\toaster\toastpkg.inf {b85b7c50-6a01-11d2-b841-00c04fad5171}\mstoaster - - http://msdn.microsoft.com/en-us/library/ff553642.aspx - Using the DevCon Tool to Install a Driver Package - -* How debug Windows drivers. - -To detect whether a driver loaded, check the status of the device in Device Manager. - -SetupAPI logs information about device installation in a plain-text log file -that you can use to verify the installation of a device and to troubleshoot -device installation problems. - -For Windows XP/2003 check: - - %SystemRoot%/setupapi.log - -For Windows Vista and later versions of Windows check: - - %SystemRoot%\inf\SetupAPI.dev.log installation events in the device - %SystemRoot%\inf\SetupAPI.app.log application installation - - http://msdn.microsoft.com/en-us/library/ff553497.aspx - Troubleshooting Install and Load Problems with Signed Driver Packages - http://www.microsoft.com/whdc/devtools/debugging/debugtips.mspx - Improve Driver Debuggability - http://msdn.microsoft.com/en-us/library/ff551063.aspx - Debugging Tools for Windows - http://msdn.microsoft.com/en-us/library/ff543450%28VS.85%29.aspx - Checked and Free Build Differences - -* Driver signing. - -Type of signature: - - * Signed by a Windows signing authority. - * Signed by a trusted publisher. - * Signed by an untrusted publisher. - * Signed by a publisher of unknown trust. - * Altered. - * Unsigned. - - http://msdn.microsoft.com/en-us/library/ff544703.aspx - Type of signature and performed action. - http://www.microsoft.com/whdc/driver/install/drvsign/best-practices.mspx - Code-Signing Best Practices. - http://msdn.microsoft.com/en-us/library/ff550764.aspx - Device Installation Signing Requirements. - http://www.microsoft.com/whdc/winlogo/categories.mspx - Windows Logo Program Test Categories. - http://www.microsoft.com/whdc/driver/install/drvsign/crosscert.mspx - Root Authority Cross-Certificate List - -** Tools for Signing Drivers. - -'certmgr.msc' present in Windows 2000 and upper. - -From Windows SDK/WDK: - - CertMgr Inf2Cat MakeCat MakeCert Pvk2Pfx SignTool - - http://msdn.microsoft.com/en-us/library/ff552958.aspx - Tools for Signing Drivers - -* Invoking a Device Properties Dialog Box from a Command-line Prompt. - -You need get device-instance-ID-parameter: - - cmd# rundll32.exe devmgr.dll,DeviceProperties_RunDLL /DeviceID "ACPI\PNP0F03\4&1A8C8C2E&0" - - http://msdn.microsoft.com/en-us/library/ff548170.aspx - -* Driver Selection Process. - -Windows uses the following criteria to select a driver for a device: - - * Windows selects the driver that has the lowest rank value as the best match for the device. - * For drivers that have equal rank, Windows selects the driver that has the most recent date. - * For the drivers that have equal rank and date, Windows selects the driver that has the highest version. - * Windows XP SP1 and later: For drivers that have equal rank, date, and version, Windows can select any driver. - * Windows XP and Windows 2000: For drivers that have equal rank, date, and version, Windows can select any driver. - - http://msdn.microsoft.com/en-us/library/ff549553.aspx - -* Distributing a Driver Package. - -** Windows Update. - -You can distribute a driver package through the Windows Update program if the driver package: - - * Passes the WHQL test program and receives a WHQL release signature. - * Qualifies for the Windows Logo program. - * Meets additional requirements that ensure that Windows Update can determine the correct driver - package for the user's device, can legally distribute it, and can automatically download it. - - http://msdn.microsoft.com/en-us/library/ff554874.aspx - -* Hardware ID. - -PCI and AGP buses: Contain subsystem ID and subsystem vendor ID (&SUBSYS in the ID string). Drivers -must have VID/DID/SVID/SID PNP ID entries to be published via Windows Update. - -PCI Device Subsystem IDs and Windows specifications are available at: -http://www.microsoft.com/whdc/archive/pciidspec.mspx - -PCMCIA: Always specific; contains PCMCIA in the ID string. - -USB: Contains VID and &PID in the ID string. - -IEEE 1394: Always specific; contains 1394 in the ID string. - -HID: Contains &VID and &PID in the ID string. - -IDE: Contains IDE\ in the ID string. - -Parallel Port Printers: Contain LPTENUM\ in the ID string. - -IrDA Printers: IDs begin with HWP. - - http://www.microsoft.com/whdc/winlogo/winup/default.mspx - Windows Update Driver Publishing diff -r dfcec55a1240 -r 60db6debab94 msvc.rst --- a/msvc.rst Fri Dec 23 00:02:50 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ --*- mode: outline; coding: utf-8 -*- - -* Downloads. - -** MSVC. - - - -** SDK. - - http://msdn.microsoft.com/en-us/windows/bb980924.aspx - Windows SDK - -* Register SDK to Visual Studio. - -To check all available version: - - cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\ - cmd> WindowsSdkVer.exe -version - -To check current used version: - - cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\ - cmd> WindowsSdkVer.exe -current - -Register SDK: - - cmd> cd %PROGRAMFILES%\Microsoft SDKs\Windows\vX.X\Setup\ - cmd> WindowsSdkVer.exe -version:v6.1 - -* MSVC versions. - - NAME VER _MSC_VER cl - - Visual Studio 6.0 (1998) 6.0 1200 - Visual Studio .NET (2002) 7.0 1300 - Visual Studio .NET 2003 7.1 1310 - Visual Studio 2005 8.0 1400 14.00 - Visual Studio 2008 9.0 1500 15.00 - Visual Studio 2010 10.0 1600 16.00 - -To check version from command line: - - cmd# cl /help 2>&1 | head -n 1 -Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x8 - cmd# cl /help 2>&1 | head -n 1 | sed "s=.*Version \([0-9]*\)\.\([0-9]*\)\..*=\1.\2=" -16.00 - - http://predef.sourceforge.net/precomp.html#sec35 - -* MFC versions. - - MFC version Visual C++ version - - 1.0 Microsoft C/C++ 7.0 - 2.0 Visual C++ 1.0 - 2.5 Visual C++ 1.5 - 3.0 Visual C++ 2.0 - 3.1 Visual C++ 2.1 - 3.2 Visual C++ 2.2 - 4.0 Visual C++ 4.0 - 4.1 Visual C++ 4.1 - 4.2 Visual C++ 4.2 - 4.21 (mfc42.dll) Visual C++ 5.0 - 6.0 (mfc42.dll) Visual C++ 6.0 - 7.0 (mfc70.dll) Visual C++ .NET 2002 - 7.1 (mfc71.dll) Visual C++ .NET 2003 - 8.0 (mfc80.dll) Visual C++ 2005 - - http://msdn.microsoft.com/en-us/library/3z02ch3k.aspx - ATL and MFC Version Numbers - -* ALT version. - - ATL version Visual C++ version - - 1.0, 1.1, 2.0 None. Released to Web in Visual C++ 4.x time frame. - 3.0 Visual C++ 6.0 - 7.0 Visual C++ .NET 2002 - 7.1 Visual C++ .NET 2003 - 8.0 Visual C++ 2005 - - http://msdn.microsoft.com/en-us/library/3z02ch3k.aspx - ATL and MFC Version Numbers - -* MS SDK version. - - VER - -Included in Visual Studio 2005 v5.0 -Included in Visual Studio 2008 v6.0A -SDK Update for Windows Vista -SDK for Windows Server 2008 and .NET Framework 3.5 v6.1 -Included in Visual Studio 2010 Express v7.0A -SDK for Windows 7 and .NET Framework 3.5 SP 1 v7.0 -SDK for Windows 7 and .NET Framework 4 v7.1 - - http://msdn.microsoft.com/en-us/windows/dd146047.aspx - Which SDK do I install? - http://en.wikipedia.org/wiki/Microsoft_Windows_SDK#Versions - -* MSVC and SDK compatibility. - -v6.1: MSVC 2005, 2008 + express -v7.0: MSVC 2008 + express -v7.1: MSVC 2005, 2008, 2010 + express - -* Build MSVC project from command line. - - cmd> cd %proj% - cmd> %WINDIR%\Microsoft.NET\Framework\v2.0.50727\msbuild.exe file.sln - -'msbuild.exe' can not upgrade Visual Studio project files, so you better use 'vcbuild.exe' (which -present in MSVC version 8.0/9.0): - - cmd> cd %proj% - cmd> %MSVC_ROOT%\VC\vcpackages\vcbuild.exe file.sln - cmd> %MSVC_ROOT%\VC\bin\amd64\vcbuild.exe file.vcproj - - cmd> cd %proj% - cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe /Clean file.sln - cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe /Build file.sln - cmd> %MSVC_ROOT%\Common7\IDE\devenv.exe /Deploy file.sln - - http://msdn.microsoft.com/en-us/library/ms164311.aspx - MSBuild Command Line Reference - http://msdn.microsoft.com/en-us/library/kdxzbw9t.aspx - VCBUILD Command Line - http://msdn.microsoft.com/en-us/library/xee0c8y7.aspx - Devenv Command Line Switches - -* Check linking problem. - -Use '/verbose:lib' to see list of libraries for linking and thier order. - -* Buy MSVC. - - http://msdn.microsoft.com/ru-ru/subscriptions/subscriptionschart.aspx - Сравнение подписок MSDN - diff -r dfcec55a1240 -r 60db6debab94 windows-driver.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windows-driver.rst Fri Dec 23 18:04:47 2011 +0200 @@ -0,0 +1,325 @@ +.. -*- coding: utf-8; -*- + +===================== + Driver for Windows. +===================== + +About. +====== + + microsoft.public.development.device.drivers + NNTP driver development group at msnews.microsoft.com:119 + http://www.microsoft.com/communities/newsgroups/list/en-us/default.aspx + Web-interface to NNTP forum + +Which version exist? +==================== + + - VxD + Windows 3.x and Windows 9x + - Windows Driver Model (WDM) + Windows 98, Windows 98 Second Edition, Windows Me, Windows + 2000, Windows XP, Windows Server 2003 and Windows Vista (for + backwards compatibility) + - Windows Driver Foundation (WDF) + Windows 2000 and later + + http://en.wikipedia.org/wiki/VxD + VxD + http://en.wikipedia.org/wiki/Windows_Driver_Model + WDM. + http://en.wikipedia.org/wiki/Windows_Driver_Foundation + WDF. + +Msinfo32.exe. +============= + +Windows XP/2003 System Information Tool. + + * http://support.microsoft.com/kb/308549 + +Sysinternals. +============= + +WinObj. +------- + +Winobj is a program that lets you browse the Windows NT Object Manager +namespace. + +devtree. +-------- + +The DeviceTree V2.12 utility is a Windows XP/Server 2003 utility written by +OSR, that allows the user the ability to display the drivers and devices +loaded in 2 different views. The first view Driver View the user sees a list +of all the drivers loaded in kernel mode and all the devices that those +drivers have created. In the second view PnP View the user sees a list of all +the devices in the system from that of Plug and Play Manager (PnP). + +Microsoft DDK. +============== + +DevCon. +------- + +Supported device classes:: + + cmd> devcon.exe classes + +Which files used by specific driver (with "*" prints list of files for all +drivers):: + + cmd> devcon.exe driverfiles * + +Device ID (names included):: + + cmd> devcon.exe hwids * + +Device status (running/stoped):: + + cmd> devcon.exe status * + +USB Command Verifier. +===================== + +All USB peripherals are required to pass the Device Framework tests in order +to gain certification. + + * http://www.usb.org/developers/tools/ + +Files. +====== + +Windows 98 SE/ME. +----------------- + + * .386 + VxD driver under Windows 3.x + * .vxd + VxD driver under Windows 95 + +Windows NT (2000/XP/2003). +-------------------------- + + * .inf + Stored in %Windir%\Inf. + * .pnf + Precompiled INF File. Stored in %Windir%\Inf. + +Driver type. +============ + +CDC. +---- + + http://support.microsoft.com/kb/837637 + How to use or to reference the Usbser.sys driver from + universal serial bus (USB) modem .inf files. + +Driver class. +============= + + http://msdn.microsoft.com/en-us/library/ms791134.aspx + System-Supplied Device Setup Classes + http://msdn.microsoft.com/en-us/library/ff538820.aspx + Drivers for the Supported USB Device Classes + +How list drivers? +================= + +Set environment devmgr_show_nonpresent_devices to 1 and run Device Manager, +select "View" --> "Show hidden devices". + +How install drivers? +==================== + +dpinst. +------- + +Driver Install Frameworks (DIFx) tools allow installing driver under following +OSes: + + Windows Server 2008 R2 + Windows 7 + Windows Server 2008 + Windows Vista + Windows Server 2003 + Windows XP + Windows 2000 + +It consist from API (from library, DIFxAPI, DIFxApp) and command line tool +(DPInst) which can be found in WDK and their licence allow redistribution. + + http://www.microsoft.com/whdc/driver/install/DIFxFAQ.mspx + Information about Driver Install Frameworks Tools + http://msdn.microsoft.com/ru-ru/magazine/cc302206%28en-us%29.aspx + If you update any drivers in Device Manager + %windir%\system32\ReinstallBackups folder is created with + backups of the old drivers. + +devcon. +------- + +This command-line specifies the location of the driver package's INF file (c:\toaster\toastpkg.inf) +and the toaster device's hardware identifier (ID), which is specified within the INF file:: + + cmd# devcon.exe install c:\toaster\toastpkg.inf {b85b7c50-6a01-11d2-b841-00c04fad5171}\mstoaster + +See: + + http://msdn.microsoft.com/en-us/library/ff553642.aspx + Using the DevCon Tool to Install a Driver Package + +How debug Windows drivers. +========================== + +To detect whether a driver loaded, check the status of the device in Device Manager. + +SetupAPI logs information about device installation in a plain-text log file +that you can use to verify the installation of a device and to troubleshoot +device installation problems. + +For Windows XP/2003 check:: + + %SystemRoot%/setupapi.log + +For Windows Vista and later versions of Windows check:: + + %SystemRoot%\inf\SetupAPI.dev.log installation events in the device + %SystemRoot%\inf\SetupAPI.app.log application installation + +See: + + http://msdn.microsoft.com/en-us/library/ff553497.aspx + Troubleshooting Install and Load Problems with Signed Driver Packages + http://www.microsoft.com/whdc/devtools/debugging/debugtips.mspx + Improve Driver Debuggability + http://msdn.microsoft.com/en-us/library/ff551063.aspx + Debugging Tools for Windows + http://msdn.microsoft.com/en-us/library/ff543450%28VS.85%29.aspx + Checked and Free Build Differences + +Driver signing. +=============== + +Type of signature: + + * Signed by a Windows signing authority. + * Signed by a trusted publisher. + * Signed by an untrusted publisher. + * Signed by a publisher of unknown trust. + * Altered. + * Unsigned. + + http://msdn.microsoft.com/en-us/library/ff544703.aspx + Type of signature and performed action. + http://www.microsoft.com/whdc/driver/install/drvsign/best-practices.mspx + Code-Signing Best Practices. + http://msdn.microsoft.com/en-us/library/ff550764.aspx + Device Installation Signing Requirements. + http://www.microsoft.com/whdc/winlogo/categories.mspx + Windows Logo Program Test Categories. + http://www.microsoft.com/whdc/driver/install/drvsign/crosscert.mspx + Root Authority Cross-Certificate List + +Disable signing requirement on Windows 7 x64. +============================================= +:: + + cmd> bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS + cmd> bcdedit -set TESTSIGNING ON + +To revert back:: + + cmd> bcdedit.exe -set loadoptions ENABLE_INTEGRITY_CHECKS + cmd> bcdedit.exe -set TESTSIGNING OFF + +Tools for Signing Drivers. +========================== + +'certmgr.msc' present in Windows 2000 and upper. + +From Windows SDK/WDK:: + + CertMgr Inf2Cat MakeCat MakeCert Pvk2Pfx SignTool + +To register certificate in Windows 7 (or install "Admin Tools Pack" in Windows +XP):: + + cmd> certutil -addstore TrustedPublisher cert.cer + +See: + + http://msdn.microsoft.com/en-us/library/ff552958.aspx + Tools for Signing Drivers + http://www.microsoft.com/download/en/details.aspx?id=16770 + Admin Tools Pack + +Invoking a Device Properties Dialog Box from a Command-line Prompt. +=================================================================== + +You need get device-instance-ID-parameter:: + + cmd# rundll32.exe devmgr.dll,DeviceProperties_RunDLL /DeviceID "ACPI\PNP0F03\4&1A8C8C2E&0" + + * http://msdn.microsoft.com/en-us/library/ff548170.aspx + +Driver Selection Process. +========================= + +Windows uses the following criteria to select a driver for a device: + + * Windows selects the driver that has the lowest rank value as the best match for the device. + * For drivers that have equal rank, Windows selects the driver that has the most recent date. + * For the drivers that have equal rank and date, Windows selects the driver that has the highest version. + * Windows XP SP1 and later: For drivers that have equal rank, date, and version, Windows can select any driver. + * Windows XP and Windows 2000: For drivers that have equal rank, date, and version, Windows can select any driver. + +See: + + * http://msdn.microsoft.com/en-us/library/ff549553.aspx + +Distributing a Driver Package. +============================== + +Windows Update. +--------------- + +You can distribute a driver package through the Windows Update program if the driver package: + + * Passes the WHQL test program and receives a WHQL release signature. + * Qualifies for the Windows Logo program. + * Meets additional requirements that ensure that Windows Update can determine the correct driver + package for the user's device, can legally distribute it, and can automatically download it. + +See: + + * http://msdn.microsoft.com/en-us/library/ff554874.aspx + +Hardware ID. +------------ + +PCI and AGP buses: Contain subsystem ID and subsystem vendor ID (&SUBSYS in the ID string). Drivers +must have VID/DID/SVID/SID PNP ID entries to be published via Windows Update. + +PCI Device Subsystem IDs and Windows specifications are available at: + + * http://www.microsoft.com/whdc/archive/pciidspec.mspx + +PCMCIA: Always specific; contains PCMCIA in the ID string. + +USB: Contains VID and &PID in the ID string. + +IEEE 1394: Always specific; contains 1394 in the ID string. + +HID: Contains &VID and &PID in the ID string. + +IDE: Contains IDE\ in the ID string. + +Parallel Port Printers: Contain LPTENUM\ in the ID string. + +IrDA Printers: IDs begin with HWP. + + http://www.microsoft.com/whdc/winlogo/winup/default.mspx + Windows Update Driver Publishing