Hi,

In the \wince500\public\common\oak\drivers\usbfn\serial\usbfndrv.cpp
file, in the USBSerialFn::CableAttached function we see the source code
mentioning a "WCEUSBSH Bug". See the code snippet below.

Code Snippet :
>> >>
void USBSerialFn::CableAttached()
{
..
DWORD dwBulkSize = (m_CurrentSpeed == BS_HIGH_SPEED?

g_HighSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize:

g_FullSpeedEndpoints[BULK_IN_DESCRIPTOR_INDEX].Descriptor.wMaxPacketSize);
..
OpenBulkOut(m_hDevice, m_pUfnFuncs,uEdptAddr,TRUE,dwBulkSize,
dwBulkSize, 4); // WCEUSBSH Bug. Only can usb MaxPacketSize
..
<< <<

The result is that the PDD has to complete transfers more frequently.

I wondered if this was a bug of WCEUSBSH that had gotten fixed already,
so I tried changing the call to OpenBulkOut to specify a larger
dwMaxTransferSize parameter (4K buffer) :

OpenBulkOut(m_hDevice,
m_pUfnFuncs,uEdptAddr,TRUE,dwBulkSize,/*dwBulkSize*/4096, 4);

The result is that it more than doubles our bulk out transfer speed.
(simply because the MDD doesn't have to complete so many transfers any
more I guess)

I am wondering now if others have seen the same thing ? Can you try ?
And better yet, can Microsoft confirm whether or not this indeed is a
bug in WCEUSBSH that got fixed ? I do not seem to have any issues with
my ActiveSync 4.1.0 (Build 4841).

Let me know.

Thanks
-- Ronald