MC9090 WM5 BSP39 CPY file processing after Clean Boot

Has anyone noticed that CPY files don't seem to get processed after Clean Booting an MC9090?  My unit is loaded with BSP39...not sure if this just started with BSP39 or if it also occurred with previous BSP's. 

If I change this registry value:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\COPYFILES]
"SkipCopy"=dword:00000000

and then do a warm boot, the CPY files get processed.

REG files are still getting processed on a Clean Boot.  Is this Engineering's way of slowly closing the door on CPY file support under WM5 or am I just doing something wrong? 

Thanks,
Ken
Jimmy Joseph
CPY file processing is done

CPY file processing is done on a Clean Boot. Make sure Clean boot is performed.
I've verified the same on BSP39 9094.
By default CPY files are not processed on Coldboot or warmboot and on a clean boot CPY files present in the '\Application' directory is processed.
Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Michael Holman
Check out SPR 12189. Issue

Check out SPR 12189.
Issue with CPY file processing.

This problem is solved by copying RunCopyfiles.reg to Application folder, then create a CPY file using Windows subfolder name macro, instead of Windows subfolder name, copy it to Application folder, then re-boot the device.



Windows subfolder macro;



Macro Subfolder name OS



%WSU% Windows\StartUp CE & WM


%WSM% Windows\Start Menu WM


%WSMP% Windows\Start Menu\Programs WM


%WSMS% Windows\Start Menu\Settings WM


%WP% Windows\Programs CE


%WDT% Windows\Desktop CE



Old CPY entry:


\Application\MyApp.exe > \Windows\Programs\MyApp.exe



New CPY entry:


\Application\MyApp.exe > \%WP%\MyApp.exe for CE5.0


\Application\MyApp.exe > \%WSMP%\MyApp.exe for WM5.0


Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Anonymous (not verified)
Michael, This sounds exactly

Michael,

This sounds exactly what the problem is.  I took a look at SPR 12189.  It doesn't have the RunCopyfiles.REG attached.  Do you know what is in this REG file? 

Thanks,
Ken
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Michael Holman
It's posted on BETAZONE. ;

It's posted on BETAZONE.

; use the first one in the prog list
[HKEY_CURRENT_USER\Software\Symbol\Startup\Programs\Prog1]
"ColdBootOnly"=dword:00000001
"Continue"=dword:00000001
"Name"=" \\windows\\copyfiles.exe"
"Command"="-q -d \\Application"
Vote: 
Vote up!
Vote down!

Points: 1

You voted ‘up’


Anonymous (not verified)
Thanks Michael.  That took

Thanks Michael.  That took care of it.  My CPY files are happy now after a Clean Boot.  I noticed this SPR is from May 2006.  I wonder why the REG key hasn't made it into a BSP release since then?
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Allan Herrod
.REG and .CPY files have

.REG and .CPY files have NEVER been processed on a warm boot on ANY device.


That is exactly what the Skip flags are there to achieve.


These are put in the registry when the copy or merge happens and get cleared only manually (as you did) or when the registry is cleared.


On CE5, the registry gets cleared on cold boot. On WM5, the registry gets cleared on clean boot only.


And it is in the cases where the registry gets cleared that the .REG and .CPY files most need to be reprocessed.


If you want them processed on a boot that does not clear the registry, then you need to clear the skip flags before rebooting.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Alan Livingston
Guys...  Please read the SPR

Guys...  Please read the SPR again.  According to the comments in the PSR, there's nothing wrong with CopyFiles.

Look at the second comment:




Performed additonal testing as requested by Joel Brand. 1. Modified the CPY so that the files are copied to \windows and performed a clean boot. files were copied correctly to the windows folder. 2. Modified the CPY so that the files are copied to \WINDOWS\TESTBD. The folder TESTBD was created and the files copied correctly to this folder.












***  Important sentences follows ***

It appears that the CPY is running properly but the CPY is unable to place anything into \windows\start menu\programs. Main question I guess is with WM5.0 are we able to write to \windows\start menu\programs using a CPY?

*** End of important sentences ***














Most of Symbols customer use this method and if this can not be used we will need a white paper for both our customer and partners that are currently using REGMERG and CPY utilities.



 If you keep reading, the resolution was to use the macros to get CopyFiles to copy into StartUp and Start Menu\Programs.  This has the added benefit of also working on localized terminals.

So, I don't understand if you're saying that CopyFiles isn't running on a Cold boot (It doesn't, out of the box and probably never should) or if it's not running on a Clean Cold Boot (It does -- Perhaps looking at your .cpy file would help solve the problem).

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Alan, What I'm saying is

Alan,

What I'm saying is that CPY files are not being processed correctly on an MC9090 WM5 with BSP35 or BSP39 after a Clean Boot. 

I have the following CPY files in the Application folder on a device:

CPY File #1
\Application\FusionUpdate\FusionInstall.lnk > \windows\Startup\FusionInstall.lnk

CPY File #2 (this is the standard AppCenter.CPY provided by Odyssey)\application\appcenter\AppCenter.lnk       >  \windows\startup\AppCenter.lnk
\application\appcenter\AppCenter.lnk       >  \windows\start menu\programs\AppCenter.lnk
\application\appcenter\AppCenterAdmin.lnk  >  \windows\start menu\programs\AppCenterAdmin.lnk
;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk                >  \Program Files\Odyssey Software\junk
\application\appcenter\AppCenter.exe       >  \Program Files\Odyssey Software\AppCenter\AppCenter.exe
\application\appcenter\AppCenterAdmin.exe  >  \Program Files\Odyssey Software\AppCenter\AppCenterAdmin.exe

CPY File #3
\application\KraftHandheld\KraftHandheld.exe         > \Program Files\KraftHandheld\KraftHandheld.exe
\application\KraftHandheld\motorola-sit-conf.xml     > \Program Files\KraftHandheld\motorola-sit-conf.xml
\application\KraftHandheld\Symbol.Barcode.Design.dll > \Program Files\KraftHandheld\Symbol.Barcode.Design.dll
;\application\KraftHandheld\Symbol.Barcode.Design.xml > \Program Files\KraftHandheld\Symbol.Barcode.Design.xml
\application\KraftHandheld\Kraft Handheld.lnk         > \Windows\Start Menu\Kraft Handheld.lnk

When I Clean Boot the unit, the single file in CPY File #1 is processed, only the first file in CPY File #2 is processed, and none of the files in CPY File #3 is processed.  When I install the REG file from SPR #12189 and do a Clean Boot, all three CPY files are processed correctly.

I don't think the problem I had is related to not using macro names since all of the files in CPY File #3 are going to \Program Files.  There is no macro name for this folder, correct?

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Glenn Sayer
just a thought.  all of the

just a thought.  all of the lines that are failing look to have a space in them as part of the file path.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Richard Linsley-Hood
I believe the problem you are

I believe the problem you are seeing is because CopyFiles does NOT create directories. At any time. If a directory exists (which is what I believe has happened by the time you use it after the reg file/Warm Boot combo) then it will work. If the directory does not exist then it will fail, on a line by line basis.

It is possible that CopyFiles has been changed from when this was true but, given the evidence you present, it would seem to be still true.

The easiest way to overcome all of this is to create a cab file to perform the actions you require. Cab files are capable of creating directories as well as copying files into them.



Richard LH
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Alan Livingston
CopyFiles has had the ability

CopyFiles has had the ability to create sub-directories since 2003, according to the source code archives.  I don't doubt that there are some bugs, though.

First, when you use the solution posted on the BetaZone you are creating a second version of CopyFiles that runs, still only on Clean Cold Boots, that doesn't exhibit the error you see.  A problem with this is that you need to insure that you;re not overwriting an existing Startup entry in the registry.  The termional could be configured to place something else in [HKEY_CURRENT_USER\Software\Symbol\Startup\Programs\Prog1].  Second, you're going to be slowing down the already long clean cold boot time, since CopyFiles runs twice.

I've tested this on a number of terminals.  I see the issue on an MC70, OEM Version 70.18.0003.  I don't see the issue on an MC9090 OEM Version 01.09.0003, an MC70, OEM Verson 04.39.0003 or on a WT4000 terminal running Windows CE.  All but the MC70 OS with OEM Version 04.39.0003 should be running the same version of CopyFiles.

What is the OEM version of the OS you are running?
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Alan, I'm using an MC9090

Alan,

I'm using an MC9090 WM5 with BSP39 (OEM 01.39.0001).  I've also seen the problem on the previous version, BSP35.  I'm suprised you don't see the problem on the MC70 with BSP39, unless CopyFiles is one of the 12 files that are different between the MC70 and MC9090 (Product Marketing line ) .
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anthony Ambler
Alan and Ken, I don't know

Alan and Ken,

I don't know but I may have a related problem. I had a reg file that did not work on a clean boot on my MC7094 using BSP 35. I asked someone in the support center to test the reg file for me and when they clean booted their MC7094 it worked fine for them. The setting was written to the registry correctly. We both clean and blanked our devices and tested this several times and my device consistently failed while his consistenly worked.

Maybe we have a problem that exists on different devices for some reason? Ken have you had other people test this same cpy file to see if it works? Maybe we need to investigate this further.

Tony Ambler
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Richard Linsley-Hood
" CopyFiles has had the

" CopyFiles has had the ability to create sub-directories since 2003, according to the source code archives.  I don't doubt that there are some bugs, though."

I know what is supposed to have happened. If it quacks like a duck, walks like a duck, ......

The only simple explanation for the observed behaviour is that somehow this is not occurring (creating directories).  There are other more complicated explanation but I always try the simple ones first.

Richard LH
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Gene Niles
It would help to see a

It would help to see a version of the .cpy file that is failing and the tests that are being run to repro it. If this is in fact failing, it should be an SPR.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Alan Livingston
I believe we've identified

I believe we've identified the root cause of the issue.

While CopyFiles does create subdirectories, it won't create sub-directories more than onle level deep.  For example, if you have the following CopyFile entries:




 \Application\Test\Test1.dat > \Application\DIR1\DIR2\DIR3\Test1.dat


 and DIR1 doesn't exist, CopyFiles won't create the DIR2 and DIR3 sub-dorectories under DIR1 and the copy will fail.  However, the following CopyFile entry will work:




 \Application\Test\Test1.dat > \Application\DIR1\Test1.dat


 CopyFiles will create DIR1 under Application and copy Test1.dat into it.

I think we can resolve all of our observations with this bug taken into account.  So far, we've seen:



  • For a particular product, different OS versions that use the same version of CopyFiles seem to work sometimes and fail sometimes.

  • Some products fail in the field, but Support is unable to reproduce the issue.


In the original issue that  Ken posted, this bug would occur randomly, depending on what OS version and product it was tested on.  Even though many of these products used the same version of CopyFiles.  This occurs because the CopyFile entries that are failing are all copying into sub-directories under \Windows\Start Menu and \Program Files.  If the OS hasn't created \Windows\Start Menu or \Program Files, yet, then these CopyFile entries will fail.  There's a hint in CPY File #2.




 ;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk                >  \Program Files\Odyssey Software\junk


 Apparently Odyssey has seen this error and creates an entry for each sub-directory it creates.




Solutions

There are two solutions.  The first was the solution provided in SPR 12189.  It requires a patched version of CopyFiles to be run.  This version will create sub-directories of multiple levels, not just a single level.  Both CopyFile entries in the original example above would work correctly.

However, this solution requires that you modify the registry entries for the StartUp application.  You have to insure that you don't overwrite any existing entries!  Also, CopyFiles will run twice.  Once for the original version and once for the new version.  This will add some time to the startup process.

The second solution is to follow the example that Odyssey made.  Ken's CopyFile entries looked like this:




CPY File #2 (this is the standard AppCenter.CPY provided by Odyssey)\application\appcenter\AppCenter.lnk       >  \windows\startup\AppCenter.lnk
\application\appcenter\AppCenter.lnk       >  \windows\start menu\programs\AppCenter.lnk
\application\appcenter\AppCenterAdmin.lnk  >  \windows\start menu\programs\AppCenterAdmin.lnk
;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk                >  \Program Files\Odyssey Software\junk
\application\appcenter\AppCenter.exe       >  \Program Files\Odyssey Software\AppCenter\AppCenter.exe
\application\appcenter\AppCenterAdmin.exe  >  \Program Files\Odyssey Software\AppCenter\AppCenterAdmin.exe


CPY File #3
\application\KraftHandheld\KraftHandheld.exe         > \Program Files\KraftHandheld\KraftHandheld.exe
\application\KraftHandheld\motorola-sit-conf.xml     > \Program Files\KraftHandheld\motorola-sit-conf.xml
\application\KraftHandheld\Symbol.Barcode.Design.dll > \Program Files\KraftHandheld\Symbol.Barcode.Design.dll
;\application\KraftHandheld\Symbol.Barcode.Design.xml > \Program Files\KraftHandheld\Symbol.Barcode.Design.xml
\application\KraftHandheld\Kraft Handheld.lnk         > \Windows\Start Menu\Kraft Handheld.lnk


 Following this example, we'd add an entry before line 2 of Copy File #2:




 \application\appcenter\junk  >  \windows\start menu\junk


 This insures that \Windows\Start Menu is created.  The next addition would be to insure that \Program Files is created, by adding an entry to create \Program Files just before the entry that creates \Program Files\Odyssey Software




\application\appcenter\junk  >  \Program Files\junk
\application\appcenter\junk  >  \Program Files\Odyssey Software\junk


 For CopyFile #3, we would need to insure that \Program Files is created, using the same method above, copying junk into \Program Files.

This solution has the distinct disadvantage of creating extra files in the directory structure.  This may not be desirable, especially for the Start Menu directory, since they will show up in the terminal's UI.  If that is objectionable, the first solution should be implemented, again, insuring that no other Startup entry is overwritten in the registry.

Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Anonymous (not verified)
Alan, Thanks for looking

Alan,

Thanks for looking into this.  I took your findings and did some testing with my CPY files.  In order to get all of the files to copy correctly, I had to use the following lines in my CPY files (new lines are in bold):

CPY File #2

;The next line is needed to ensure that the Windows folder is present
\application\appcenter\junk                >  \windows\junk
\application\appcenter\AppCenter.lnk       >  \Windows\Startup\AppCenter.lnk
;The next line is needed to ensure that the Start Menu folder is present
\application\appcenter\junk                >  \windows\Start Menu\junk
\application\appcenter\AppCenter.lnk       >  \Windows\Start Menu\Programs\AppCenter.lnk
\application\appcenter\AppCenterAdmin.lnk  >  \Windows\Start Menu\Programs\AppCenterAdmin.lnk
;The next line is needed in order for AppCenter to create the Odyssey Software folder...otherwise it will fail creating the AppCenter folder.
\application\appcenter\junk                >  \Program Files\junk
\application\appcenter\junk                >  \Program Files\Odyssey Software\junk
\application\appcenter\AppCenter.exe       >  \Program Files\Odyssey Software\AppCenter\AppCenter.exe
\application\appcenter\AppCenterAdmin.exe  >  \Program Files\Odyssey Software\AppCenter\AppCenterAdmin.exe

CPY File #3

;The next line is needed to ensure that the Program Files folder is present
\application\KraftHandheld\junk                      > \Program Files\junk
\application\KraftHandheld\KraftHandheld.exe         > \Program Files\KraftHandheld\KraftHandheld.exe
\application\KraftHandheld\motorola-sit-conf.xml     > \Program Files\KraftHandheld\motorola-sit-conf.xml
\application\KraftHandheld\Symbol.Barcode.Design.dll > \Program Files\KraftHandheld\Symbol.Barcode.Design.dll
;\application\KraftHandheld\Symbol.Barcode.Design.xml > \Program Files\KraftHandheld\Symbol.Barcode.Design.xml
\application\KraftHandheld\Kraft Handheld.lnk         > \Windows\Start Menu\Kraft Handheld.lnk

It appears as though the CopyFiles utility is run extremely early in the Clean Boot process.  I even had to use a CPY file command to put a junk file in \Windows (CPY File #2) to make sure that folder existed.  If I didn't include this, the file that goes into \Windows\Startup wasn't created.  I tried using the Windows macro names also (i.e. %WSU%) - this didn't help.

There's also another complication - when AppCenter runs, it gives a "This device is not an approved platform for Symbol AppCenter" error message.  Warm booting doesn't fix the problem.  The only way I'm able to get AppCenter to start up properly is to click on the AppCenter REG file in \Applicaton which re-merges the file to reset the plaform security key. 

Given all of these complications, I don't trust using CPY files on WM5 devices.  There can be too many device to device variances that may cause things to work on some devices, but not on others.  I'm going to stick with using the solution from SPR 12189.  From what I've found, it seems to be consistent with its results.  As you stated, when each OS update is released I would need to make sure that the REG file for SPR 12189 isn't interfering with a duplicate REG key that the new OS build may be trying to use.

I think we need to roll the fix from SPR 12189 into a BSP.  If not, we need to change our product manuals to indicate that CPY file processing on a Clean Boot may not yield the intended results.


Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Alan Livingston
Ken, "I think we need to

Ken,

"I think we need to roll the fix from SPR 12189 into a BSP. "

I've talked to ECRT and the maintenance team about this issue.  I believe this will get rolled up into a future maintenance release.
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Richard Linsley-Hood
As we are now recomending

As we are now recomending (and have for a while) that our customers move away from the use of CopyFiles and as all of the outcomes of using it can be achieved by the use of an appropriate cab filecan we please use and recomend that as a solution instead?

I would strongly recomend that you stop using CopyFiles altogether ASAP. Move to cab files NOW.

Richard LH
Vote: 
Vote up!
Vote down!

Points: 0

You voted ‘up’


Log in to post comments