Windows Embedded CE 6.0 Update 090831_2009M08

 

 

How to install this update

All updates for Windows Embedded CE 6.0 require the following:

 

1) Platform Builder 6.0 is installed on the machine.

2) Upon installing the update, the platforms must be rebuilt.

 

Please download the file(s) most appropriate for your installation, as follows:

 

WinCEPB60-090831-2009M08-Armv4I.MSI     For installation based upon Armv4I processors
WinCEPB60-090831-2009M08-MIPSII.MSI     For installation based upon MIPSII processors
WinCEPB60-090831-2009M08-MIPSII_FP.MSI     For installation based upon MIPSII-FP processors
WinCEPB60-090831-2009M08-MIPSIV.MSI     For installation based upon MIPSIV processors
WinCEPB60-090831-2009M08-MIPSIV_FP.MSI     For installation based upon MIPSIV-FP processors
WinCEPB60-090831-2009M08-SH4.MSI     For installation based upon SH4 processors
WinCEPB60-090831-2009M08-X86.MSI     For installation based upon X86-based processors

 

This package will install all updates directly to the build environment specified by the original Platform Builder installation.  This is specified by the following registry key: HKLM\Software\Microsoft\Platform Builder\6.00\Directories - "OS Install Dir".  By default, a backup of all updated files will be maintained at the following location:  %_WINCEROOT%\Updates\Backup.  You can remove any files from this directory at your choosing.

 

Note:

1. If you have trouble installing package on Windows Vista, open command prompt, choose "Run as administrator", confirm UAC prompt, launch an update.

2. Making changes to the update files or rebuilding the public tree changes file CRC values.

   These files might be reported as "corrupted" by CEUpdateCheck tool as CRC values will not match the updates' database entries.

 

If you have installed previous updates

If you have installed previous updates, this package will update your build environment to include the latest files for this component.

 

If you see "Files that will not be installed"

If this message is displayed, it means that you have an update installed with a later version of the files then those that are being installed.  You already have the updates mentioned in this document including some updates released later.  This message is displayed to prevent accidental overwrite of the latest update to that particular component.

 

Note:

If source files have been modified by a user, they may not be overwritten by the files provided with the updates if Date Modified of the files on user's machine is newer.

 

If you reinstall or repair Platform Builder

If you uninstall or repair Platform Builder 6.0, you have to remove corresponding WinCEPBxx.ini file located in %WINDIR%.

 

 

Fixes made in this update:

 

By Component:

 

Component:  ATL8

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     others\atl8\include\atlcom.h
     others\atl8\include\atlcomcli.h

Component:  Bluetooth HID Host Profile

Note:

Do not call DeactivateDevice on the HID driver immediately after issuing BTHHID_IOCTL_HIDDisconnect - the driver will disconnect both L2CAP links as it unloads, and potentially cause issues with virtually cabled devices and the associated qualification tests. When using the btenum sample, you may need to insert a Sleep() call after sending BTHHID_IOCTL_HIDDisconnect to allow the remote device time to gracefully disconnect.

 

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\comm\bluetooth\profiles\hid\base\bthid.cxx
     private\winceos\comm\bluetooth\profiles\hid\base\hidpkt.cxx

Component:  CETK

Component:  Core GWES

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     public\common\oak\inc\pwinuser.h

Component:  DirectX

Component:  PPP2

The file(s) with the new source code changes for this component can be found in the directory %_WINCEROOT%\:

     private\winceos\comm\ppp2\ppp\app\ip_intf.c

Component:  TCP/IP

A new thread is introduced to process TCP send packets which runs at same priority as NDIS thread.
For this solution to work NDIS and the new thread should be at same priority in your miniport driver.

If it needs to be changed, it should be done by changing it thru existing registry setting, so that both threads can be at same priority.


Existing registry for NDIS thread priority:


[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NDIS]
"Priority256"=dword:74     // default priority is 116 (hex 74)


New registries are being introduced.
Enhanced TCP is on by default. Following registry key turns it off:


[HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms]
"EnhanceTCPSend"=dword:0     // Turn off enhanced TCP send


For each platform these two registries need to be tuned. With proper tuning of these two parameters, maximum TCP send throughput can be achieved..
Start with default value. Increase the buffer size and decrease the wakeup interval.


[HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms]
"SendThreadWakeupInterval"=dword:4     //Send thread wakeup interval. This interval is used for send thread to sleep before it send out the packets.


It helps to accumulate the packets and send them in one shot. Default is 4 ms. Maximum value is 10ms and minimum is 1ms.


[HKEY_LOCAL_MACHINE\Comm\AFD]
"TCPSendQuota"= dword:10000     // 64K by default. This is the maximum buffer AFD can use to send packets. Max is 512K and Min is 16K


TCP Receive registry setting.
The new TCP receive code attempts for a "short path" from ARP to TCP receive. It cuts lots of instructions in the path. By default it is turned on.

Use following registry to turn off this feature:


[HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms]
"AttemptFastPath"=dword:0     // Turn off fast path