Qualcomm USB Host Driver version 2.0.6.7 for Windows 2000/XP/Server 2003/Vista/Win7
This readme covers important information regarding Qualcomm USB Host Driver
version 2.0.6.7 for Windows 2000, Windows XP, Windows Server 2003, Windows
Vista and Windows 7.
Table of Contents
1. Installation Notes
2. Major Features
3. What's New in This Release
4. Known issues
5. Build Information
----------------------------------------------------------------------
1. INSTALLATION NOTES
Please refer to Qualcomm document 80-V4609-1 Rev J for detailed instructions on
driver installation. The aforesaid document is encloded in the driver package.
----------------------------------------------------------------------
2. MAJOR FEATURES
1) Major bug fixes for operations under Windows XP, backward compatible with
Windows 2000. Support 64-bit Windows.
2) Introduced new solution to the Windows open handle issue. The solution makes
the USB virtual/PNP COM port's behavior similar to that of a physical COM port
when device is reset or disconnected.
3) The driver is re-designed to be reentrant, which may allow multiple device
connections on Windows XP over a single USB hub. Please note, multiple connections
on Windows 2000 or through multiple USB hubs on Windows XP may cause system
crash unless the devices completely remove their USB serial number string
from the USB descriptor.
4) Vitually eliminated use of global cancel spin lock. This not only boosts the
performance of the whole system but also makes the current driver much faster
from one USB transfer to another, thus makes short packet handling more efficient.
5) The driver is designed to be running safe with Intel Hyper-Threading processor
and multi-processor systems with Windows XP, and multi-processor systems with
Windows 2000.
6) Added true resident mode to the driver. Users can configure the driver to be a
true resident driver instead of a PNP driver at run-time via registry settings.
This feature itend to provide the ultimate solution to all the issues caused by
device reset/disconnection. Under the true-resident mode, the driver will maintain
its virtual(PNP) COM port(s) at all times and thus try to make the virtual(PNP)
COM port behave as same as a traditional/physical COM port when the device is
disconnected or reset. For details, please refer to section 9.4.2 in Qualcomm
document 80-V4609-1 Rev J. By default, the driver operates under PNP mode.
----------------------------------------------------------------------
3. What's New in This Release
1) Fixed a possible race condition during IRP completion. (2.0.5.1)
2) Removed registry setting for USB remote wakeup. (2.0.5.1)
3) Corrected the implementation of HS-USB byte padding to work around the HW bug.
(2.0.5.1)
4) Added support for PID F005. (2.0.5.2)
5) Changed the port device type from FILE_DEVICE_UNKNOWN to FILE_DEVICE_SERIAL_PORT
for better compatibility. (2.0.5.2)
6) Refined error handling for USB control transfer. (2.0.5.2)
7) Added support for PID 9012, 9013, 9016 and 9017. (2.0.5.3)
8) Added support for 1.8Mbps baudrate(2.0.5.3)
9) Changes were made so that pending IRPs related to power management would be
cancelled proactively during driver/device removal. (2.0.5.4)
10) Enabled modem speaker settings. (2.0.5.5)
11) Corrected the tag parameter used in IoReleaseRemoveLock to satisfy Windows logo
test. (2.0.5.5)
12) Added support for PID 9006. (2.0.5.5)
13) Added support for PID 900A. (2.0.5.5)
14) Added support for GPS auto-detection (2.0.5.6)
15) Added support so that access to QDL device is granted to only QDL service.
(2.0.5.6)
16)Removed runtime driver configuration. (2.0.5.7)
17) Changes were made so that remote wakeup is cleared for all non-D2 power states.
to avoid system sleep failure when the hub controller is armed for remote wakeup.
(2.0.5.7)
18) Changes were made to avoid double completion of a system power IRP when a series
of non-consistent system power IRPs (e.g query-s3 followed by set-s0 and followed
by set-s3) are dispatched to the driver. (2.0.5.7)
19) Enabled remote wakeup flag in the driver even if the remote wakeup is cleared,
which avoids the problem thatthe remote wakeup might never get engaged in some
cases. (2.0.5.8)
20) Made changes so that remote wakeup could be armed only for selective suspension
under S0 system power state.Remote wakeup may be armed under other system power
states by configuring registry, which also depends on how system configures the
hub. (2.0.5.9)
21) Added support for 300bps date rate. (2.0.5.9)
22) Added PID 9018 support for Android target. (2.0.5.9)
23) Add PID 9019 support for WM targets. (2.0.6.0)
24) Fixed deadlock during power event synchronization. (2.0.6.0)
25) added support for PID 900C. (2.0.6.1)
26) Synchronized selective suspension and remote wakeup. (2.0.6.1)
27) Made changes so that the device power settings are properly re-initialized when
the serial port object is reused due to an open handle. (2.0.6.1)
28) Added special handling for IRP_MN_QUERY_LEGACY_BUS_INFORMATION to satisfy Windows
logo test (2.0.6.2)
29) Fixed the race condition when sending IRP to stack while the top DO could be set
to NULL in a different thread. (2.0.6.3)
30) Fixed the bug that a remove lock (for a write IRP) could be released without being
acquired. (2.0.6.3)
31) Made changes so that I/O requests from the port DO of non-modem type would not
be redirected to the top DO on the device stack. This is to avoid stack hang when
the kernel-mode Reflector is the top DO. (2.0.6.4)
32) Made changes to handle multiple consecutive IRP_MJ_CLOSE. (2.0.6.4)
33) Added support for PID 900D (2.0.6.4)
34) Made changes so that only IRP_MJ_CREATE is sent to the stack when the stack is
marked as "closed", this helps modem.sys to maintain correct OpenCount. (2.0.6.5)
35) Added support for PID 9402, 900E and 901C. (2.0.6.5)
36) Added synchronization between AddDevice and port closure. (2.0.6.5)
37) Removed WMI registration when the underlying PDO is removed. (2.0.6.5)
38) Fixed the bug which could double free a same memory block used to store USB config
descriptor. (2.0.6.5)
39) Added support for PID 9100 and 9101. (2.0.6.6)
40) Added support for PID 9101(04), 3199 and 319A. (2.0.6.7)
41) Made QCINT_InitInterruptPipe() reentrant safe. (2.0.6.7)
42) Made changes so that the buffer for interrupt pipe is allocated with the device
extension instead of the interrupt thread. (2.0.6.7)
----------------------------------------------------------------------
4. KNOWN ISSUES:
It's been observed that the Qualcomm USB driver could trigger bugs in older
versions of McAfee mini-firewall driver mvstd5x.sys. McAfee has suggested
that users obtain McAfee VirusScan patch 14 or later patches for bug fixes.
Compilation flag QCSER_TARGET_XP should NOT be defined with this version due to
unsolved issues with XP-specific function calls.
Rarely, when the modem connection is up but the device is reset or disconnected/
re-connected, modem application may not be able to talk to modem port. A workaround
is to perform a second reset or re-connection of the device. It's also recommended
that users obtain Mirosoft hotfix Q822112 to reduce the possibility of this problem.
This problem is fixed in Windows XP SP2.
----------------------------------------------------------------------
5. BUILD INFORMATION:
The following compilation flags are defined for customers to build the driver
to debug various issues related to host and device, they are not recommended
for other purposes.
ENABLE_LOGGING
QCSER_ENABLE_LOG_REC
QCSER_DBGPRINT