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