WMC driver package
==================

This driver package contains kernel mode drivers for mobile phones.

Directories
===========

.\doc
  - documentation and history

.\drvpackage_x64
  - unsigned driver and INF files for x64 release build

.\drvpackage_x64_dbg
  - unsigned driver and INF files for x64 debug build  

.\drvpackage_x86
  - unsigned driver and INF files for x86 release build

.\drvpackage_x86_dbg
  - unsigned driver and INF files for x86 debug build  

.\pdb
  - driver .pdb files required for WHQL submission

.\setup
 - unsigned setup program and the corresponding configuration file (setup.ini)
 - script "create_and_sign_setup_packages.cmd" used to generate setup packages signed 
   by means of a vendor certificate (_disk and _disk_debug)

.\setup\_disk
 - Signed setup package that should be delivered to the end user. By default the package
   is signed by Thesycon.

.\setup\_disk_debug
 - Signed setup package (debug version) that should only be delivered to the end user
   in specific support cases. By default the package is signed by Thesycon.

.\signing
 - helper scripts used to generate setup packages signed by means of a vendor certificate


Operating systems
=================
The software supports the following operating systems
- Windows Vista
- Windows Vista x64
- Windows 7
- Windows 7 x64
- Windows 8
- Windows 8 x64

Installation
============
Run the program .\setup\_disk\setup.exe and follow the instructions. For silent installation
please refer to the document DriverSetupManual.pdf.

De-Installation
==============
Open the 'Programs and Features' control panel on Windows Vista and newer operating 
systems and the 'Add or Remove Programs' control panel before Windows Vista respectively and 
remove your installation. For silent uninstallation please refer to the document 
DriverSetupManual.pdf.

Debugging
=========
Install the debug version of the driver .setup\_disk_debug\setup.exe. 
Modify the TraceMask entries under the service key. The 
TraceMask can be found at
HKLM\system\CurrentControlSet\services\<your service name>\TraceMask
Each driver of a driver pack has a separated trace mask. Typical examples 
are "imc1_com" for the port and modem driver, "imc1_mi" for the multi-interface 
driver or "imc1_ncm" for the NCM network driver.
The service name can be found in the INF file. The files trace_cdcacm.txt 
and trace_mi.txt describe the meaning of the trace bits. To much traces 
can cause performance issues and gaps in the trace record. The trace mask should 
be chosen in a reasonable way to analyse the problem.

Run a kernel debugger or DebugView (available from Microsoft) to capture the 
traces. DebugView must be started with administrator privileges. Make sure the 
following options in the Capture menu are selected:
- Capture Kernel
- Enable Verbose Kernel Output
- Pass-Through

To synchronize the time stamps from the kernel driver with other traces selected
options -> Clock Time and Show Milliseconds.

To optimize performance the trace can be captured directly to a file: File -> Log to 
File. 

DebugView can be minimized to reduce CPU load caused by printing the data into the 
window.


Known Issues
============
Class Code in device descriptor
-------------------------------
When the device reports the class code for CDC (0x02) in the device descriptor the USB bus 
driver does not generate the hardware ID usb\composite. This hardware ID is used to load 
the system provided usbccgp driver. When this driver is installed the installation of the 
family driver fails. The problem occurs always on Window Vista and XP when the 
device is connected after the driver is installed.

To avoid this problem the device should report the class code 0x02 in the device descriptor.
To make the driver package running the usbccgp driver "USB Composite Driver" can be manually 
updated to the Multi-Interface driver from the package. 



