Hello,
We are using Win CE 5.0 USB host stack for the development purpose. We found
that Win CE Host stack has a very low performance.
We have done few modifications in the USB Mass Storage Class driver to
enhance the speed of USB transfers in Host mode.

WinCE Kernel USB Class Driver fixes -

1. Changed Max Transfer size from 8KB to 32KB.
Result - Number of SCSI commands was reduced.
2. Removal of SCSI Test Unit Ready(TUR) Command during Read/Write
operation.
Result - Time taken by TUR Command is reduced during Read/Write operation.
3. WinCE Scatter-Gather Buffer changed from 8 to 128 (SG_MAX_BUF)
Result - Disk I/O Delay is reduced by increasing the number of buffers

Changes in MS WinCE Kernel system Memory
1. Memory Type changed to RAMdisk
Result - RAMdisk access times are faster than WinCE system memory

We need know,
1. Whether the above modifications will affect the stability of the Win CE
kernel and system.
2. Will they have any detrimental affect on their internal kernel modules.

Thanks in Advance,
Sheeja

How to create Win CE 6.0 Ramdisk by suj

suj
Tue Jun 10 01:14:01 PDT 2008

Could anyone let me know the procedure to create Win CE 6.0 Ramdisk?
--
Thanks in Advance,
Sheeja




Re: How to create Win CE 6.0 Ramdisk by Michel

Michel
Tue Jun 10 03:14:42 PDT 2008

Copy the code from \WINCE600\PUBLIC\COMMON\OAK\DRIVERS\BLOCK\RAMDISK to
your BSP or as a subproject in your OSDesign, build it and run the
loader, or look at what the loader does and setup the registry so your
ramdrive loads at boot.

Good luck,

Michel Verhagen, eMVP
Check out my blog: http://GuruCE.com/blog

GuruCE Ltd.
Microsoft Embedded Partner
http://GuruCE.com
Consultancy, training and development services.

Sheeja wrote:
> Could anyone let me know the procedure to create Win CE 6.0 Ramdisk?

Re: How to create Win CE 6.0 Ramdisk by suj

suj
Wed Jun 18 22:13:00 PDT 2008

I did the following, but it did not work. I could not see any Ramdisk drive.
I have tried creating a Ramdisk on Win CE 5.0. It worked fine.
But for Win CE 6.0, its failing.

Below are the registry values from platform.reg.

; RamDisk driver
[HKEY_LOCAL_MACHINE\Drivers\Builtin\RAMDisk]
"Size"=dword:00100000
"Prefix"="DSK"
"Dll"="ramdisk.dll"
"Order"=dword:0
"Ioctl"=dword:4
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Profile"="RamDisk"
"FriendlyName"="Windows CE Ramdisk Driver"
"Index"=dword:15

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\RAMDisk]
"PartitionDriver"="mspart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"Name"="RamDisk"
"Folder"="RamDisk"

[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\RAMDisk]
"DriverPath"="Drivers\\Builtin\\RAMDisk"
"LoadFlags"=dword:1
"Bootphase"=dword:0

Please let me know if I am missing something.
--
Thanks in Advance,
Sheeja


"Michel Verhagen (eMVP)" wrote:

> Copy the code from \WINCE600\PUBLIC\COMMON\OAK\DRIVERS\BLOCK\RAMDISK to
> your BSP or as a subproject in your OSDesign, build it and run the
> loader, or look at what the loader does and setup the registry so your
> ramdrive loads at boot.
>
> Good luck,
>
> Michel Verhagen, eMVP
> Check out my blog: http://GuruCE.com/blog
>
> GuruCE Ltd.
> Microsoft Embedded Partner
> http://GuruCE.com
> Consultancy, training and development services.
>
> Sheeja wrote:
> > Could anyone let me know the procedure to create Win CE 6.0 Ramdisk?
>

Re: How to create Win CE 6.0 Ramdisk by Michel

Michel
Thu Jun 19 01:16:01 PDT 2008

Why did you specify an index of 0x15?

Also, you either specify it as a BuiltIn driver -or- as autoload, NOT
both. Delete the Autoload registry setting.

Then, if it still fails, enable debugzones for the ramdisk driver and
show us the relevant debug message output.

Or, set a breakpoint in the Init function and see why it doesn't load.

Good luck,

Michel Verhagen, eMVP
Check out my blog: http://GuruCE.com/blog

GuruCE Ltd.
Microsoft Embedded Partner
http://GuruCE.com
Consultancy, training and development services.

Sheeja wrote:
> I did the following, but it did not work. I could not see any Ramdisk drive.
> I have tried creating a Ramdisk on Win CE 5.0. It worked fine.
> But for Win CE 6.0, its failing.
>
> Below are the registry values from platform.reg.
>
> ; RamDisk driver
> [HKEY_LOCAL_MACHINE\Drivers\Builtin\RAMDisk]
> "Size"=dword:00100000
> "Prefix"="DSK"
> "Dll"="ramdisk.dll"
> "Order"=dword:0
> "Ioctl"=dword:4
> "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
> "Profile"="RamDisk"
> "FriendlyName"="Windows CE Ramdisk Driver"
> "Index"=dword:15
>
> [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\RAMDisk]
> "PartitionDriver"="mspart.dll"
> "AutoMount"=dword:1
> "AutoPart"=dword:1
> "AutoFormat"=dword:1
> "Name"="RamDisk"
> "Folder"="RamDisk"
>
> [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\RAMDisk]
> "DriverPath"="Drivers\\Builtin\\RAMDisk"
> "LoadFlags"=dword:1
> "Bootphase"=dword:0
>
> Please let me know if I am missing something.

Re: How to create Win CE 6.0 Ramdisk by suj

suj
Tue Jun 24 23:28:00 PDT 2008

Thanks a lot. it worked.
Could you please let me know why Win CE Ramdisk has better performance than
the System Memory?
--
Thanks in Advance,
Sheeja


"Michel Verhagen (eMVP)" wrote:

> Why did you specify an index of 0x15?
>
> Also, you either specify it as a BuiltIn driver -or- as autoload, NOT
> both. Delete the Autoload registry setting.
>
> Then, if it still fails, enable debugzones for the ramdisk driver and
> show us the relevant debug message output.
>
> Or, set a breakpoint in the Init function and see why it doesn't load.
>
> Good luck,
>
> Michel Verhagen, eMVP
> Check out my blog: http://GuruCE.com/blog
>
> GuruCE Ltd.
> Microsoft Embedded Partner
> http://GuruCE.com
> Consultancy, training and development services.
>
> Sheeja wrote:
> > I did the following, but it did not work. I could not see any Ramdisk drive.
> > I have tried creating a Ramdisk on Win CE 5.0. It worked fine.
> > But for Win CE 6.0, its failing.
> >
> > Below are the registry values from platform.reg.
> >
> > ; RamDisk driver
> > [HKEY_LOCAL_MACHINE\Drivers\Builtin\RAMDisk]
> > "Size"=dword:00100000
> > "Prefix"="DSK"
> > "Dll"="ramdisk.dll"
> > "Order"=dword:0
> > "Ioctl"=dword:4
> > "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
> > "Profile"="RamDisk"
> > "FriendlyName"="Windows CE Ramdisk Driver"
> > "Index"=dword:15
> >
> > [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\RAMDisk]
> > "PartitionDriver"="mspart.dll"
> > "AutoMount"=dword:1
> > "AutoPart"=dword:1
> > "AutoFormat"=dword:1
> > "Name"="RamDisk"
> > "Folder"="RamDisk"
> >
> > [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\RAMDisk]
> > "DriverPath"="Drivers\\Builtin\\RAMDisk"
> > "LoadFlags"=dword:1
> > "Bootphase"=dword:0
> >
> > Please let me know if I am missing something.
>

Re: How to create Win CE 6.0 Ramdisk by Dean

Dean
Wed Jun 25 06:16:39 PDT 2008

The object store (system memory) implements compression by default. The RAM
disk does not.

--
Dean Ramsier - eMVP
BSQUARE Corporation


"Sheeja" <suj@discussions.microsoft.com> wrote in message
news:DA607276-D893-45AB-90E7-7A8F4AC21B4A@microsoft.com...
> Thanks a lot. it worked.
> Could you please let me know why Win CE Ramdisk has better performance
> than
> the System Memory?
> --
> Thanks in Advance,
> Sheeja
>
>
> "Michel Verhagen (eMVP)" wrote:
>
>> Why did you specify an index of 0x15?
>>
>> Also, you either specify it as a BuiltIn driver -or- as autoload, NOT
>> both. Delete the Autoload registry setting.
>>
>> Then, if it still fails, enable debugzones for the ramdisk driver and
>> show us the relevant debug message output.
>>
>> Or, set a breakpoint in the Init function and see why it doesn't load.
>>
>> Good luck,
>>
>> Michel Verhagen, eMVP
>> Check out my blog: http://GuruCE.com/blog
>>
>> GuruCE Ltd.
>> Microsoft Embedded Partner
>> http://GuruCE.com
>> Consultancy, training and development services.
>>
>> Sheeja wrote:
>> > I did the following, but it did not work. I could not see any Ramdisk
>> > drive.
>> > I have tried creating a Ramdisk on Win CE 5.0. It worked fine.
>> > But for Win CE 6.0, its failing.
>> >
>> > Below are the registry values from platform.reg.
>> >
>> > ; RamDisk driver
>> > [HKEY_LOCAL_MACHINE\Drivers\Builtin\RAMDisk]
>> > "Size"=dword:00100000
>> > "Prefix"="DSK"
>> > "Dll"="ramdisk.dll"
>> > "Order"=dword:0
>> > "Ioctl"=dword:4
>> > "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
>> > "Profile"="RamDisk"
>> > "FriendlyName"="Windows CE Ramdisk Driver"
>> > "Index"=dword:15
>> >
>> > [HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\RAMDisk]
>> > "PartitionDriver"="mspart.dll"
>> > "AutoMount"=dword:1
>> > "AutoPart"=dword:1
>> > "AutoFormat"=dword:1
>> > "Name"="RamDisk"
>> > "Folder"="RamDisk"
>> >
>> > [HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\RAMDisk]
>> > "DriverPath"="Drivers\\Builtin\\RAMDisk"
>> > "LoadFlags"=dword:1
>> > "Bootphase"=dword:0
>> >
>> > Please let me know if I am missing something.
>>